[libc-commits] [libc] [libc][math][c++23] Add Fmabf16 math function (PR #182836)
via libc-commits
libc-commits at lists.llvm.org
Mon Feb 23 08:22:28 PST 2026
https://github.com/Sukumarsawant updated https://github.com/llvm/llvm-project/pull/182836
>From cfb7a7fae010c240c286617adb69a560b31e9bfb Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 9 Feb 2026 13:15:49 +0530
Subject: [PATCH 01/43] initial commit + tests remaining + uncomplete
---
libc/config/baremetal/aarch64/entrypoints.txt | 1865 +--
libc/config/baremetal/arm/entrypoints.txt | 1887 +--
libc/config/baremetal/riscv/entrypoints.txt | 1883 +--
libc/config/darwin/aarch64/entrypoints.txt | 1495 +-
libc/config/darwin/x86_64/entrypoints.txt | 621 +-
libc/config/gpu/amdgpu/entrypoints.txt | 1387 +-
libc/config/gpu/nvptx/entrypoints.txt | 1391 +-
libc/config/linux/aarch64/entrypoints.txt | 2369 +--
libc/config/linux/arm/entrypoints.txt | 1075 +-
libc/config/linux/riscv/entrypoints.txt | 2663 ++--
libc/config/linux/x86_64/entrypoints.txt | 2805 ++--
libc/config/windows/entrypoints.txt | 769 +-
libc/src/math/CMakeLists.txt | 1291 +-
libc/src/math/ffmal.h | 40 +-
libc/src/math/fmabf16.h | 21 +
libc/src/math/generic/CMakeLists.txt | 14 +
libc/src/math/generic/fmabf16.cpp | 21 +
libc/test/src/math/CMakeLists.txt | 6948 ++++----
libc/test/src/math/bf16mul_test.cpp | 30 +-
libc/test/src/math/fmabf16_test.cpp | 29 +
libc/test/src/math/smoke/CMakeLists.txt | 13049 ++++++++--------
libc/test/src/math/smoke/fmabf16_test.cpp | 14 +
22 files changed, 20904 insertions(+), 20763 deletions(-)
create mode 100644 libc/src/math/fmabf16.h
create mode 100644 libc/src/math/generic/fmabf16.cpp
create mode 100644 libc/test/src/math/fmabf16_test.cpp
create mode 100644 libc/test/src/math/smoke/fmabf16_test.cpp
diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt
index 742d96761c415..a8ed932da0fe3 100644
--- a/libc/config/baremetal/aarch64/entrypoints.txt
+++ b/libc/config/baremetal/aarch64/entrypoints.txt
@@ -1,932 +1,933 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdio.h entrypoints
- libc.src.stdio.asprintf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fprintf
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fscanf
- libc.src.stdio.fwrite
- libc.src.stdio.getchar
- libc.src.stdio.printf
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.scanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vasprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.vfscanf
- libc.src.stdio.vprintf
- libc.src.stdio.vscanf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vsscanf
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.a64l
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.calloc
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.free
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.malloc
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.realloc
- libc.src.stdlib.srand
- # libc.src.stdlib.strfromd
- # libc.src.stdlib.strfromf
- # libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.clock
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.difftime
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.localtime
- libc.src.time.localtime_r
- libc.src.time.mktime
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.timespec_get
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # internal entrypoints
- libc.startup.baremetal.init
- libc.startup.baremetal.fini
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- # libc.src.math.atan2l
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdio.h entrypoints
+ libc.src.stdio.asprintf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fprintf
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fscanf
+ libc.src.stdio.fwrite
+ libc.src.stdio.getchar
+ libc.src.stdio.printf
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.scanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vscanf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vsscanf
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.calloc
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.free
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.malloc
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.realloc
+ libc.src.stdlib.srand
+ # libc.src.stdlib.strfromd
+ # libc.src.stdlib.strfromf
+ # libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.clock
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.difftime
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.localtime
+ libc.src.time.localtime_r
+ libc.src.time.mktime
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.timespec_get
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # internal entrypoints
+ libc.startup.baremetal.init
+ libc.startup.baremetal.fini
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ # libc.src.math.atan2l
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt
index 95cb0dea8e49e..a04400f815fe7 100644
--- a/libc/config/baremetal/arm/entrypoints.txt
+++ b/libc/config/baremetal/arm/entrypoints.txt
@@ -1,943 +1,944 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdio.h entrypoints
- libc.src.stdio.asprintf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fprintf
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fscanf
- libc.src.stdio.fwrite
- libc.src.stdio.getchar
- libc.src.stdio.printf
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.scanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vasprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.vfscanf
- libc.src.stdio.vprintf
- libc.src.stdio.vscanf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vsscanf
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.a64l
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.calloc
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.free
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.malloc
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.realloc
- libc.src.stdlib.srand
- # libc.src.stdlib.strfromd
- # libc.src.stdlib.strfromf
- # libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.clock
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.difftime
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.localtime
- libc.src.time.localtime_r
- libc.src.time.mktime
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.timespec_get
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # internal entrypoints
- libc.startup.baremetal.init
- libc.startup.baremetal.fini
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan2l
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- libc.src.stdfix.idivr
- libc.src.stdfix.idivlr
- libc.src.stdfix.idivk
- libc.src.stdfix.idivlk
- libc.src.stdfix.idivur
- libc.src.stdfix.idivulr
- libc.src.stdfix.idivuk
- libc.src.stdfix.idivulk
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdio.h entrypoints
+ libc.src.stdio.asprintf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fprintf
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fscanf
+ libc.src.stdio.fwrite
+ libc.src.stdio.getchar
+ libc.src.stdio.printf
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.scanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vscanf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vsscanf
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.calloc
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.free
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.malloc
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.realloc
+ libc.src.stdlib.srand
+ # libc.src.stdlib.strfromd
+ # libc.src.stdlib.strfromf
+ # libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.clock
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.difftime
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.localtime
+ libc.src.time.localtime_r
+ libc.src.time.mktime
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.timespec_get
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # internal entrypoints
+ libc.startup.baremetal.init
+ libc.startup.baremetal.fini
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan2l
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ libc.src.stdfix.idivr
+ libc.src.stdfix.idivlr
+ libc.src.stdfix.idivk
+ libc.src.stdfix.idivlk
+ libc.src.stdfix.idivur
+ libc.src.stdfix.idivulr
+ libc.src.stdfix.idivuk
+ libc.src.stdfix.idivulk
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt
index 3fc71280f5163..7cad3f33c2980 100644
--- a/libc/config/baremetal/riscv/entrypoints.txt
+++ b/libc/config/baremetal/riscv/entrypoints.txt
@@ -1,941 +1,942 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # setjmp.h entrypoints
- # libc.src.setjmp.longjmp
- # libc.src.setjmp.setjmp
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdio.h entrypoints
- libc.src.stdio.asprintf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fprintf
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fscanf
- libc.src.stdio.fwrite
- libc.src.stdio.getchar
- libc.src.stdio.printf
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.scanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vasprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.vfscanf
- libc.src.stdio.vprintf
- libc.src.stdio.vscanf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vsscanf
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.a64l
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.calloc
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.free
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.malloc
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.realloc
- libc.src.stdlib.srand
- # libc.src.stdlib.strfromd
- # libc.src.stdlib.strfromf
- # libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.clock
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.difftime
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.localtime
- libc.src.time.localtime_r
- libc.src.time.mktime
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.timespec_get
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # internal entrypoints
- libc.startup.baremetal.init
- libc.startup.baremetal.fini
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- # libc.src.math.atan2l
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- # libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- # libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- libc.src.stdfix.idivr
- libc.src.stdfix.idivlr
- libc.src.stdfix.idivk
- libc.src.stdfix.idivlk
- libc.src.stdfix.idivur
- libc.src.stdfix.idivulr
- libc.src.stdfix.idivuk
- libc.src.stdfix.idivulk
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # setjmp.h entrypoints
+ # libc.src.setjmp.longjmp
+ # libc.src.setjmp.setjmp
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdio.h entrypoints
+ libc.src.stdio.asprintf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fprintf
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fscanf
+ libc.src.stdio.fwrite
+ libc.src.stdio.getchar
+ libc.src.stdio.printf
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.scanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vscanf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vsscanf
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.calloc
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.free
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.malloc
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.realloc
+ libc.src.stdlib.srand
+ # libc.src.stdlib.strfromd
+ # libc.src.stdlib.strfromf
+ # libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.clock
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.difftime
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.localtime
+ libc.src.time.localtime_r
+ libc.src.time.mktime
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.timespec_get
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # internal entrypoints
+ libc.startup.baremetal.init
+ libc.startup.baremetal.fini
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ # libc.src.math.atan2l
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ # libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ # libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ libc.src.stdfix.idivr
+ libc.src.stdfix.idivlr
+ libc.src.stdfix.idivk
+ libc.src.stdfix.idivlk
+ libc.src.stdfix.idivur
+ libc.src.stdfix.idivulr
+ libc.src.stdfix.idivuk
+ libc.src.stdfix.idivulk
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt
index 3909417f9730d..6aceca7d31e1e 100644
--- a/libc/config/darwin/aarch64/entrypoints.txt
+++ b/libc/config/darwin/aarch64/entrypoints.txt
@@ -1,747 +1,748 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
-
- # string.h entrypoints that depend on malloc
- libc.src.string.strdup
- libc.src.string.strndup
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atoi
- libc.src.stdlib.atof
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.malloc
- libc.src.stdlib.calloc
- libc.src.stdlib.realloc
- libc.src.stdlib.free
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-)
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
- libc.src.stdlib._Exit
- )
-endif()
-
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+
+ # string.h entrypoints that depend on malloc
+ libc.src.string.strdup
+ libc.src.string.strndup
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atof
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.malloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.realloc
+ libc.src.stdlib.free
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+)
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+ libc.src.stdlib._Exit
+ )
+endif()
+
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt
index e899bf97ea3f6..d27510602df62 100644
--- a/libc/config/darwin/x86_64/entrypoints.txt
+++ b/libc/config/darwin/x86_64/entrypoints.txt
@@ -1,310 +1,311 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # search.h entrypoints
- libc.src.search.lfind
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
-
- # string.h entrypoints that depend on malloc
- libc.src.string.strdup
- libc.src.string.strndup
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bzero
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atoi
- libc.src.stdlib.atof
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.malloc
- libc.src.stdlib.calloc
- libc.src.stdlib.realloc
- libc.src.stdlib.free
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # fenv disabled on x86_64 MacOS for now.
- # # fenv.h entrypoints
- # libc.src.fenv.feclearexcept
- # libc.src.fenv.fedisableexcept
- # libc.src.fenv.feenableexcept
- # libc.src.fenv.fegetenv
- # libc.src.fenv.fegetexcept
- # libc.src.fenv.fegetexceptflag
- # libc.src.fenv.fegetround
- # libc.src.fenv.feholdexcept
- # libc.src.fenv.fesetenv
- # libc.src.fenv.fesetexcept
- # libc.src.fenv.fesetexceptflag
- # libc.src.fenv.fesetround
- # libc.src.fenv.feraiseexcept
- # libc.src.fenv.fetestexcept
- # libc.src.fenv.fetestexceptflag
- # libc.src.fenv.feupdateenv
-
- ## Currently disabled for failing tests.
- # math.h entrypoints
- #libc.src.math.copysign
- #libc.src.math.copysignf
- #libc.src.math.copysignl
- #libc.src.math.ceil
- #libc.src.math.ceilf
- #libc.src.math.ceill
- #libc.src.math.coshf
- #libc.src.math.cosf
- #libc.src.math.daddl
- #libc.src.math.ddivl
- #libc.src.math.dfmal
- #libc.src.math.dsqrtl
- #libc.src.math.dsubl
- #libc.src.math.expf
- #libc.src.math.exp2f
- #libc.src.math.expm1f
- #libc.src.math.fabs
- #libc.src.math.fabsf
- #libc.src.math.fabsl
- #libc.src.math.fdim
- #libc.src.math.fdimf
- #libc.src.math.fdiml
- #libc.src.math.fdiv
- #libc.src.math.fdivl
- #libc.src.math.ffma
- #libc.src.math.ffmal
- #libc.src.math.floor
- #libc.src.math.floorf
- #libc.src.math.floorl
- #libc.src.math.fma
- #libc.src.math.fmaf
- #libc.src.math.fmax
- #libc.src.math.fmaxf
- #libc.src.math.fmaxl
- #libc.src.math.fmin
- #libc.src.math.fminf
- #libc.src.math.fminl
- #libc.src.math.fmod
- #libc.src.math.fmodf
- #libc.src.math.frexp
- #libc.src.math.frexpf
- #libc.src.math.frexpl
- #libc.src.math.fsub
- #libc.src.math.fsubl
- #libc.src.math.hypot
- #libc.src.math.hypotf
- #libc.src.math.ilogb
- #libc.src.math.ilogbf
- #libc.src.math.ilogbl
- #libc.src.math.llrint
- #libc.src.math.llrintf
- #libc.src.math.llrintl
- #libc.src.math.llround
- #libc.src.math.llroundf
- #libc.src.math.llroundl
- #libc.src.math.lrint
- #libc.src.math.lrintf
- #libc.src.math.lrintl
- #libc.src.math.lround
- #libc.src.math.lroundf
- #libc.src.math.lroundl
- #libc.src.math.ldexp
- #libc.src.math.ldexpf
- #libc.src.math.ldexpl
- #libc.src.math.log10f
- #libc.src.math.log1pf
- #libc.src.math.log2f
- #libc.src.math.logf
- #libc.src.math.logb
- #libc.src.math.logbf
- #libc.src.math.logbl
- #libc.src.math.modf
- #libc.src.math.modff
- #libc.src.math.modfl
- #libc.src.math.nan
- #libc.src.math.nanf
- #libc.src.math.nanl
- #libc.src.math.nearbyint
- #libc.src.math.nearbyintf
- #libc.src.math.nearbyintl
- #libc.src.math.nextafter
- #libc.src.math.nextafterf
- #libc.src.math.nextafterl
- #libc.src.math.nexttoward
- #libc.src.math.nexttowardf
- #libc.src.math.nexttowardl
- #libc.src.math.remainderf
- #libc.src.math.remainder
- #libc.src.math.remainderl
- #libc.src.math.remquof
- #libc.src.math.remquo
- #libc.src.math.remquol
- #libc.src.math.rint
- #libc.src.math.rintf
- #libc.src.math.rintl
- #libc.src.math.round
- #libc.src.math.roundf
- #libc.src.math.roundl
- #libc.src.math.sincosf
- #libc.src.math.sinhf
- #libc.src.math.sinf
- #libc.src.math.sqrt
- #libc.src.math.sqrtf
- #libc.src.math.sqrtl
- #libc.src.math.tanf
- #libc.src.math.tanhf
- #libc.src.math.totalordermag
- #libc.src.math.totalordermagf
- #libc.src.math.totalordermagl
- #libc.src.math.trunc
- #libc.src.math.truncf
- #libc.src.math.truncl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # search.h entrypoints
+ libc.src.search.lfind
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+
+ # string.h entrypoints that depend on malloc
+ libc.src.string.strdup
+ libc.src.string.strndup
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bzero
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atof
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.malloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.realloc
+ libc.src.stdlib.free
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # fenv disabled on x86_64 MacOS for now.
+ # # fenv.h entrypoints
+ # libc.src.fenv.feclearexcept
+ # libc.src.fenv.fedisableexcept
+ # libc.src.fenv.feenableexcept
+ # libc.src.fenv.fegetenv
+ # libc.src.fenv.fegetexcept
+ # libc.src.fenv.fegetexceptflag
+ # libc.src.fenv.fegetround
+ # libc.src.fenv.feholdexcept
+ # libc.src.fenv.fesetenv
+ # libc.src.fenv.fesetexcept
+ # libc.src.fenv.fesetexceptflag
+ # libc.src.fenv.fesetround
+ # libc.src.fenv.feraiseexcept
+ # libc.src.fenv.fetestexcept
+ # libc.src.fenv.fetestexceptflag
+ # libc.src.fenv.feupdateenv
+
+ ## Currently disabled for failing tests.
+ # math.h entrypoints
+ #libc.src.math.copysign
+ #libc.src.math.copysignf
+ #libc.src.math.copysignl
+ #libc.src.math.ceil
+ #libc.src.math.ceilf
+ #libc.src.math.ceill
+ #libc.src.math.coshf
+ #libc.src.math.cosf
+ #libc.src.math.daddl
+ #libc.src.math.ddivl
+ #libc.src.math.dfmal
+ #libc.src.math.dsqrtl
+ #libc.src.math.dsubl
+ #libc.src.math.expf
+ #libc.src.math.exp2f
+ #libc.src.math.expm1f
+ #libc.src.math.fabs
+ #libc.src.math.fabsf
+ #libc.src.math.fabsl
+ #libc.src.math.fdim
+ #libc.src.math.fdimf
+ #libc.src.math.fdiml
+ #libc.src.math.fdiv
+ #libc.src.math.fdivl
+ #libc.src.math.ffma
+ #libc.src.math.ffmal
+ #libc.src.math.floor
+ #libc.src.math.floorf
+ #libc.src.math.floorl
+ #libc.src.math.fma
+ #libc.src.math.fmabf16
+ #libc.src.math.fmaf
+ #libc.src.math.fmax
+ #libc.src.math.fmaxf
+ #libc.src.math.fmaxl
+ #libc.src.math.fmin
+ #libc.src.math.fminf
+ #libc.src.math.fminl
+ #libc.src.math.fmod
+ #libc.src.math.fmodf
+ #libc.src.math.frexp
+ #libc.src.math.frexpf
+ #libc.src.math.frexpl
+ #libc.src.math.fsub
+ #libc.src.math.fsubl
+ #libc.src.math.hypot
+ #libc.src.math.hypotf
+ #libc.src.math.ilogb
+ #libc.src.math.ilogbf
+ #libc.src.math.ilogbl
+ #libc.src.math.llrint
+ #libc.src.math.llrintf
+ #libc.src.math.llrintl
+ #libc.src.math.llround
+ #libc.src.math.llroundf
+ #libc.src.math.llroundl
+ #libc.src.math.lrint
+ #libc.src.math.lrintf
+ #libc.src.math.lrintl
+ #libc.src.math.lround
+ #libc.src.math.lroundf
+ #libc.src.math.lroundl
+ #libc.src.math.ldexp
+ #libc.src.math.ldexpf
+ #libc.src.math.ldexpl
+ #libc.src.math.log10f
+ #libc.src.math.log1pf
+ #libc.src.math.log2f
+ #libc.src.math.logf
+ #libc.src.math.logb
+ #libc.src.math.logbf
+ #libc.src.math.logbl
+ #libc.src.math.modf
+ #libc.src.math.modff
+ #libc.src.math.modfl
+ #libc.src.math.nan
+ #libc.src.math.nanf
+ #libc.src.math.nanl
+ #libc.src.math.nearbyint
+ #libc.src.math.nearbyintf
+ #libc.src.math.nearbyintl
+ #libc.src.math.nextafter
+ #libc.src.math.nextafterf
+ #libc.src.math.nextafterl
+ #libc.src.math.nexttoward
+ #libc.src.math.nexttowardf
+ #libc.src.math.nexttowardl
+ #libc.src.math.remainderf
+ #libc.src.math.remainder
+ #libc.src.math.remainderl
+ #libc.src.math.remquof
+ #libc.src.math.remquo
+ #libc.src.math.remquol
+ #libc.src.math.rint
+ #libc.src.math.rintf
+ #libc.src.math.rintl
+ #libc.src.math.round
+ #libc.src.math.roundf
+ #libc.src.math.roundl
+ #libc.src.math.sincosf
+ #libc.src.math.sinhf
+ #libc.src.math.sinf
+ #libc.src.math.sqrt
+ #libc.src.math.sqrtf
+ #libc.src.math.sqrtl
+ #libc.src.math.tanf
+ #libc.src.math.tanhf
+ #libc.src.math.totalordermag
+ #libc.src.math.totalordermagf
+ #libc.src.math.totalordermagl
+ #libc.src.math.trunc
+ #libc.src.math.truncf
+ #libc.src.math.truncl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt
index 0dda7d5c683ec..9ab7d517cf57c 100644
--- a/libc/config/gpu/amdgpu/entrypoints.txt
+++ b/libc/config/gpu/amdgpu/entrypoints.txt
@@ -1,693 +1,694 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha
- libc.src.ctype.isalpha_l
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower
- libc.src.ctype.islower_l
- libc.src.ctype.isprint
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit
- libc.src.ctype.isxdigit_l
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper
- libc.src.ctype.toupper_l
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcoll_l
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strtod
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull
- libc.src.stdlib.strtoull_l
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.quick_exit
- libc.src.stdlib.getenv
- libc.src.stdlib.system
-
- # TODO: Implement these correctly
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.fclose
- libc.src.stdio.printf
- libc.src.stdio.vprintf
- libc.src.stdio.fprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.asprintf
- libc.src.stdio.vasprintf
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fopen
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fseek
- libc.src.stdio.ftell
- libc.src.stdio.fwrite
- libc.src.stdio.getc
- libc.src.stdio.getchar
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # time.h entrypoints
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.timespec_get
- libc.src.time.nanosleep
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.mktime
-
- # wchar.h entrypoints
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan2l
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.lgamma
- libc.src.math.lgamma_r
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.round
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.tgamma
- libc.src.math.tgammaf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.acospif16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.atanf16
- libc.src.math.atanhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- # libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper
+ libc.src.ctype.toupper_l
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcoll_l
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull
+ libc.src.stdlib.strtoull_l
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.quick_exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.system
+
+ # TODO: Implement these correctly
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.fclose
+ libc.src.stdio.printf
+ libc.src.stdio.vprintf
+ libc.src.stdio.fprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fopen
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fseek
+ libc.src.stdio.ftell
+ libc.src.stdio.fwrite
+ libc.src.stdio.getc
+ libc.src.stdio.getchar
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # time.h entrypoints
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.timespec_get
+ libc.src.time.nanosleep
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.mktime
+
+ # wchar.h entrypoints
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan2l
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.lgamma
+ libc.src.math.lgamma_r
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.round
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.tgamma
+ libc.src.math.tgammaf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.acospif16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.atanf16
+ libc.src.math.atanhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ # libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt
index 6070fb5b17b3c..b997d3eb3b26a 100644
--- a/libc/config/gpu/nvptx/entrypoints.txt
+++ b/libc/config/gpu/nvptx/entrypoints.txt
@@ -1,695 +1,696 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha
- libc.src.ctype.isalpha_l
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower
- libc.src.ctype.islower_l
- libc.src.ctype.isprint
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit
- libc.src.ctype.isxdigit_l
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper
- libc.src.ctype.toupper_l
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcoll_l
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strtod
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull
- libc.src.stdlib.strtoull_l
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.quick_exit
- libc.src.stdlib.getenv
- libc.src.stdlib.system
-
- # TODO: Implement these correctly
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.fclose
- libc.src.stdio.printf
- libc.src.stdio.vprintf
- libc.src.stdio.fprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.asprintf
- libc.src.stdio.vasprintf
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fopen
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fseek
- libc.src.stdio.ftell
- libc.src.stdio.fwrite
- libc.src.stdio.getc
- libc.src.stdio.getchar
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # time.h entrypoints
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.timespec_get
- libc.src.time.nanosleep
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.mktime
-
- # wchar.h entrypoints
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan2l
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- # FIXME: Broken.
- # libc.src.math.fromfp
- # libc.src.math.fromfpf
- # libc.src.math.fromfpl
- # libc.src.math.fromfpx
- # libc.src.math.fromfpxf
- # libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.lgamma
- libc.src.math.lgamma_r
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.round
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.tgamma
- libc.src.math.tgammaf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- # FIXME: Broken.
- # libc.src.math.ufromfp
- # libc.src.math.ufromfpf
- # libc.src.math.ufromfpl
- # libc.src.math.ufromfpx
- # libc.src.math.ufromfpxf
- # libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.acospif16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.atanf16
- libc.src.math.atanhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper
+ libc.src.ctype.toupper_l
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcoll_l
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull
+ libc.src.stdlib.strtoull_l
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.quick_exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.system
+
+ # TODO: Implement these correctly
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.fclose
+ libc.src.stdio.printf
+ libc.src.stdio.vprintf
+ libc.src.stdio.fprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fopen
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fseek
+ libc.src.stdio.ftell
+ libc.src.stdio.fwrite
+ libc.src.stdio.getc
+ libc.src.stdio.getchar
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # time.h entrypoints
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.timespec_get
+ libc.src.time.nanosleep
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.mktime
+
+ # wchar.h entrypoints
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan2l
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ # FIXME: Broken.
+ # libc.src.math.fromfp
+ # libc.src.math.fromfpf
+ # libc.src.math.fromfpl
+ # libc.src.math.fromfpx
+ # libc.src.math.fromfpxf
+ # libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.lgamma
+ libc.src.math.lgamma_r
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.round
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.tgamma
+ libc.src.math.tgammaf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ # FIXME: Broken.
+ # libc.src.math.ufromfp
+ # libc.src.math.ufromfpf
+ # libc.src.math.ufromfpl
+ # libc.src.math.ufromfpx
+ # libc.src.math.ufromfpxf
+ # libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.acospif16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.atanf16
+ libc.src.math.atanhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index 970c825bbfc96..ff9579c840f92 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -1,1184 +1,1185 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # dlfcn.h entrypoints
- libc.src.dlfcn.dlclose
- libc.src.dlfcn.dlerror
- libc.src.dlfcn.dlopen
- libc.src.dlfcn.dlsym
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # fcntl.h entrypoints
- libc.src.fcntl.creat
- libc.src.fcntl.fcntl
- libc.src.fcntl.open
- libc.src.fcntl.openat
-
- # poll.h entrypoints
- libc.src.poll.poll
-
- # sched.h entrypoints
- libc.src.sched.sched_get_priority_max
- libc.src.sched.sched_get_priority_min
- libc.src.sched.sched_getaffinity
- libc.src.sched.sched_getparam
- libc.src.sched.sched_getscheduler
- libc.src.sched.sched_rr_get_interval
- libc.src.sched.sched_setaffinity
- libc.src.sched.sched_setparam
- libc.src.sched.sched_setscheduler
- libc.src.sched.sched_yield
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strsignal
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strfromd
- libc.src.stdlib.strfromf
- # TODO: long double support is buggy with clang-11. Re-enable when buildbots are upgraded.
- # libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # stdio.h entrypoints
- libc.src.stdio.fprintf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.printf
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.asprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.vfprintf
- libc.src.stdio.vprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vasprintf
-
- # sys/epoll.h entrypoints
- libc.src.sys.epoll.epoll_create
- libc.src.sys.epoll.epoll_create1
- libc.src.sys.epoll.epoll_ctl
- libc.src.sys.epoll.epoll_pwait
- libc.src.sys.epoll.epoll_wait
- # TODO: Need to check if pwait2 is available before providing.
- # https://github.com/llvm/llvm-project/issues/80060
- # libc.src.sys.epoll.epoll_pwait2
-
- # sys/ioctl.h entrypoints
- libc.src.sys.ioctl.ioctl
-
- # sys/mman.h entrypoints
- libc.src.sys.mman.madvise
- libc.src.sys.mman.mincore
- libc.src.sys.mman.mlock
- libc.src.sys.mman.mlock2
- libc.src.sys.mman.mlockall
- libc.src.sys.mman.mmap
- libc.src.sys.mman.mremap
- libc.src.sys.mman.mprotect
- libc.src.sys.mman.msync
- libc.src.sys.mman.munlock
- libc.src.sys.mman.munlockall
- libc.src.sys.mman.munmap
- libc.src.sys.mman.remap_file_pages
- libc.src.sys.mman.posix_madvise
- libc.src.sys.mman.shm_open
- libc.src.sys.mman.shm_unlink
-
- # sys/random.h entrypoints
- libc.src.sys.random.getrandom
-
- # sys/resource.h entrypoints
- libc.src.sys.resource.getrlimit
- libc.src.sys.resource.setrlimit
-
- # sys/sendfile entrypoints
- libc.src.sys.sendfile.sendfile
-
- # sys/stat.h entrypoints
- libc.src.sys.stat.chmod
- libc.src.sys.stat.fchmod
- libc.src.sys.stat.fchmodat
- libc.src.sys.stat.fstat
- libc.src.sys.stat.lstat
- libc.src.sys.stat.mkdir
- libc.src.sys.stat.mkdirat
- libc.src.sys.stat.stat
-
- # sys/statvfs.h
- libc.src.sys.statvfs.fstatvfs
- libc.src.sys.statvfs.statvfs
-
- # sys/utsname.h entrypoints
- libc.src.sys.utsname.uname
-
- # sys/wait.h entrypoints
- libc.src.sys.wait.wait
- libc.src.sys.wait.wait4
- libc.src.sys.wait.waitpid
-
- # sys/prctl.h entrypoints
- libc.src.sys.prctl.prctl
-
- # sys/auxv.h entrypoints
- libc.src.sys.auxv.getauxval
-
- # termios.h entrypoints
- libc.src.termios.cfgetispeed
- libc.src.termios.cfgetospeed
- libc.src.termios.cfsetispeed
- libc.src.termios.cfsetospeed
- libc.src.termios.tcdrain
- libc.src.termios.tcflow
- libc.src.termios.tcflush
- libc.src.termios.tcgetattr
- libc.src.termios.tcgetsid
- libc.src.termios.tcsendbreak
- libc.src.termios.tcsetattr
-
- # unistd.h entrypoints
- libc.src.unistd.access
- libc.src.unistd.chdir
- libc.src.unistd.close
- libc.src.unistd.dup
- libc.src.unistd.dup2
- libc.src.unistd.dup3
- libc.src.unistd.execve
- libc.src.unistd.faccessat
- libc.src.unistd.fchdir
- libc.src.unistd.fchown
- libc.src.unistd.fpathconf
- libc.src.unistd.fsync
- libc.src.unistd.ftruncate
- libc.src.unistd.getcwd
- libc.src.unistd.getentropy
- libc.src.unistd.geteuid
- libc.src.unistd.gethostname
- libc.src.unistd.getpagesize
- libc.src.unistd.getpid
- libc.src.unistd.getppid
- libc.src.unistd.getsid
- libc.src.unistd.gettid
- libc.src.unistd.getuid
- libc.src.unistd.isatty
- libc.src.unistd.link
- libc.src.unistd.linkat
- libc.src.unistd.lseek
- libc.src.unistd.pathconf
- libc.src.unistd.pipe
- libc.src.unistd.pipe2
- libc.src.unistd.pread
- libc.src.unistd.pwrite
- libc.src.unistd.read
- libc.src.unistd.readlink
- libc.src.unistd.readlinkat
- libc.src.unistd.rmdir
- libc.src.unistd.setsid
- libc.src.unistd.symlink
- libc.src.unistd.symlinkat
- libc.src.unistd.sysconf
- libc.src.unistd.truncate
- libc.src.unistd.unlink
- libc.src.unistd.unlinkat
- libc.src.unistd.write
-
- # wchar.h entrypoints
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # sys/uio.h entrypoints
- libc.src.sys.uio.writev
- libc.src.sys.uio.readv
-
- # sys/time.h entrypoints
- libc.src.sys.time.setitimer
- libc.src.sys.time.getitimer
-)
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # malloc.h external entrypoints
- libc.src.stdlib.mallopt
- )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acoshf16
- libc.src.math.asinpif16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cospif16
- libc.src.math.expf16
- libc.src.math.f16add
- libc.src.math.f16addf
- # libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- # libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- # libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- # libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- # libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- # libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- # libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.logbf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- # libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- # Temporarily disable nexttowardf16 on aarch64 because the conversion
- # between _Float16 and long double will crash clang-11. This is fixed in
- # clang-12 and after: https://godbolt.org/z/8ceT9454c
- # libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.rsqrtf
- libc.src.math.rsqrtf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- # if(LIBC_TYPES_HAS_FLOAT128)
- # list(APPEND TARGET_LIBM_ENTRYPOINTS
- # # math.h C23 mixed _Float16 and _Float128 entrypoints
- # libc.src.math.f16addf128
- # libc.src.math.f16divf128
- # libc.src.math.f16fmaf128
- # libc.src.math.f16mulf128
- # libc.src.math.f16sqrtf128
- # libc.src.math.f16subf128
- # )
- # endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # dirent.h entrypoints
- libc.src.dirent.closedir
- libc.src.dirent.dirfd
- libc.src.dirent.opendir
- libc.src.dirent.readdir
-
- # arpa/inet.h entrypoints
- libc.src.arpa.inet.htonl
- libc.src.arpa.inet.htons
- libc.src.arpa.inet.inet_addr
- libc.src.arpa.inet.inet_aton
- libc.src.arpa.inet.ntohl
- libc.src.arpa.inet.ntohs
-
- # pthread.h entrypoints
- libc.src.pthread.pthread_atfork
- libc.src.pthread.pthread_attr_destroy
- libc.src.pthread.pthread_attr_getdetachstate
- libc.src.pthread.pthread_attr_getguardsize
- libc.src.pthread.pthread_attr_getstack
- libc.src.pthread.pthread_attr_getstacksize
- libc.src.pthread.pthread_attr_init
- libc.src.pthread.pthread_attr_setdetachstate
- libc.src.pthread.pthread_attr_setguardsize
- libc.src.pthread.pthread_attr_setstack
- libc.src.pthread.pthread_attr_setstacksize
- libc.src.pthread.pthread_condattr_destroy
- libc.src.pthread.pthread_condattr_getclock
- libc.src.pthread.pthread_condattr_getpshared
- libc.src.pthread.pthread_condattr_init
- libc.src.pthread.pthread_condattr_setclock
- libc.src.pthread.pthread_condattr_setpshared
- libc.src.pthread.pthread_create
- libc.src.pthread.pthread_detach
- libc.src.pthread.pthread_equal
- libc.src.pthread.pthread_exit
- libc.src.pthread.pthread_getname_np
- libc.src.pthread.pthread_getspecific
- libc.src.pthread.pthread_join
- libc.src.pthread.pthread_key_create
- libc.src.pthread.pthread_key_delete
- libc.src.pthread.pthread_mutex_destroy
- libc.src.pthread.pthread_mutex_init
- libc.src.pthread.pthread_mutex_lock
- libc.src.pthread.pthread_mutex_unlock
- libc.src.pthread.pthread_mutexattr_destroy
- libc.src.pthread.pthread_mutexattr_getpshared
- libc.src.pthread.pthread_mutexattr_getrobust
- libc.src.pthread.pthread_mutexattr_gettype
- libc.src.pthread.pthread_mutexattr_init
- libc.src.pthread.pthread_mutexattr_setpshared
- libc.src.pthread.pthread_mutexattr_setrobust
- libc.src.pthread.pthread_mutexattr_settype
- libc.src.pthread.pthread_once
- libc.src.pthread.pthread_rwlock_clockrdlock
- libc.src.pthread.pthread_rwlock_clockwrlock
- libc.src.pthread.pthread_rwlock_destroy
- libc.src.pthread.pthread_rwlock_init
- libc.src.pthread.pthread_rwlock_rdlock
- libc.src.pthread.pthread_rwlock_timedrdlock
- libc.src.pthread.pthread_rwlock_timedwrlock
- libc.src.pthread.pthread_rwlock_tryrdlock
- libc.src.pthread.pthread_rwlock_trywrlock
- libc.src.pthread.pthread_rwlock_unlock
- libc.src.pthread.pthread_rwlock_wrlock
- libc.src.pthread.pthread_rwlockattr_destroy
- libc.src.pthread.pthread_rwlockattr_getkind_np
- libc.src.pthread.pthread_rwlockattr_getpshared
- libc.src.pthread.pthread_rwlockattr_init
- libc.src.pthread.pthread_rwlockattr_setkind_np
- libc.src.pthread.pthread_rwlockattr_setpshared
- libc.src.pthread.pthread_spin_destroy
- libc.src.pthread.pthread_spin_init
- libc.src.pthread.pthread_spin_lock
- libc.src.pthread.pthread_spin_trylock
- libc.src.pthread.pthread_spin_unlock
- libc.src.pthread.pthread_self
- libc.src.pthread.pthread_setname_np
- libc.src.pthread.pthread_setspecific
-
- # sched.h entrypoints
- libc.src.sched.__sched_getcpucount
- libc.src.sched.__sched_setcpuzero
- libc.src.sched.__sched_setcpuset
- libc.src.sched.__sched_getcpuisset
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.clearerr_unlocked
- libc.src.stdio.fclose
- libc.src.stdio.fdopen
- libc.src.stdio.feof
- libc.src.stdio.feof_unlocked
- libc.src.stdio.ferror
- libc.src.stdio.ferror_unlocked
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgetc_unlocked
- libc.src.stdio.fgets
- libc.src.stdio.fileno
- libc.src.stdio.flockfile
- libc.src.stdio.fopen
- libc.src.stdio.fopencookie
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fread_unlocked
- libc.src.stdio.fseek
- libc.src.stdio.fseeko
- libc.src.stdio.ftell
- libc.src.stdio.ftello
- libc.src.stdio.funlockfile
- libc.src.stdio.fwrite
- libc.src.stdio.fwrite_unlocked
- libc.src.stdio.getc
- libc.src.stdio.getc_unlocked
- libc.src.stdio.getchar
- libc.src.stdio.getchar_unlocked
- libc.src.stdio.perror
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.setbuf
- libc.src.stdio.setvbuf
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.atexit
- libc.src.stdlib.exit
- libc.src.stdlib.getenv
- libc.src.stdlib.quick_exit
-
- # signal.h entrypoints
- libc.src.signal.kill
- libc.src.signal.raise
- libc.src.signal.sigaction
- libc.src.signal.sigaddset
- libc.src.signal.sigaltstack
- libc.src.signal.sigdelset
- libc.src.signal.sigemptyset
- libc.src.signal.sigfillset
- libc.src.signal.signal
- libc.src.signal.sigprocmask
-
- # spawn.h entrypoints
- libc.src.spawn.posix_spawn
- libc.src.spawn.posix_spawn_file_actions_addclose
- libc.src.spawn.posix_spawn_file_actions_adddup2
- libc.src.spawn.posix_spawn_file_actions_addopen
- libc.src.spawn.posix_spawn_file_actions_destroy
- libc.src.spawn.posix_spawn_file_actions_init
-
- # search.h entrypoints
- libc.src.search.hcreate
- libc.src.search.hcreate_r
- libc.src.search.hdestroy
- libc.src.search.hdestroy_r
- libc.src.search.hsearch
- libc.src.search.hsearch_r
- libc.src.search.insque
- libc.src.search.lfind
- libc.src.search.lsearch
- libc.src.search.remque
-
- # threads.h entrypoints
- libc.src.threads.call_once
- libc.src.threads.cnd_broadcast
- libc.src.threads.cnd_destroy
- libc.src.threads.cnd_init
- libc.src.threads.cnd_signal
- libc.src.threads.cnd_wait
- libc.src.threads.mtx_destroy
- libc.src.threads.mtx_init
- libc.src.threads.mtx_lock
- libc.src.threads.mtx_unlock
- libc.src.threads.thrd_create
- libc.src.threads.thrd_current
- libc.src.threads.thrd_detach
- libc.src.threads.thrd_equal
- libc.src.threads.thrd_exit
- libc.src.threads.thrd_join
- libc.src.threads.tss_create
- libc.src.threads.tss_delete
- libc.src.threads.tss_get
- libc.src.threads.tss_set
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.clock_settime
- libc.src.time.difftime
- libc.src.time.gettimeofday
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.mktime
- libc.src.time.nanosleep
- libc.src.time.time
- libc.src.time.timespec_get
-
- # unistd.h entrypoints
- libc.src.unistd.__llvm_libc_syscall
- libc.src.unistd._exit
- libc.src.unistd.environ
- libc.src.unistd.execv
- libc.src.unistd.fork
- libc.src.unistd.getopt
- libc.src.unistd.optarg
- libc.src.unistd.opterr
- libc.src.unistd.optind
- libc.src.unistd.optopt
- libc.src.unistd.swab
-
- # sys/select.h entrypoints
- libc.src.sys.select.select
-
- # sys/socket.h entrypoints
- libc.src.sys.socket.bind
- libc.src.sys.socket.socket
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # dlfcn.h entrypoints
+ libc.src.dlfcn.dlclose
+ libc.src.dlfcn.dlerror
+ libc.src.dlfcn.dlopen
+ libc.src.dlfcn.dlsym
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # fcntl.h entrypoints
+ libc.src.fcntl.creat
+ libc.src.fcntl.fcntl
+ libc.src.fcntl.open
+ libc.src.fcntl.openat
+
+ # poll.h entrypoints
+ libc.src.poll.poll
+
+ # sched.h entrypoints
+ libc.src.sched.sched_get_priority_max
+ libc.src.sched.sched_get_priority_min
+ libc.src.sched.sched_getaffinity
+ libc.src.sched.sched_getparam
+ libc.src.sched.sched_getscheduler
+ libc.src.sched.sched_rr_get_interval
+ libc.src.sched.sched_setaffinity
+ libc.src.sched.sched_setparam
+ libc.src.sched.sched_setscheduler
+ libc.src.sched.sched_yield
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strsignal
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strfromd
+ libc.src.stdlib.strfromf
+ # TODO: long double support is buggy with clang-11. Re-enable when buildbots are upgraded.
+ # libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # stdio.h entrypoints
+ libc.src.stdio.fprintf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.printf
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vasprintf
+
+ # sys/epoll.h entrypoints
+ libc.src.sys.epoll.epoll_create
+ libc.src.sys.epoll.epoll_create1
+ libc.src.sys.epoll.epoll_ctl
+ libc.src.sys.epoll.epoll_pwait
+ libc.src.sys.epoll.epoll_wait
+ # TODO: Need to check if pwait2 is available before providing.
+ # https://github.com/llvm/llvm-project/issues/80060
+ # libc.src.sys.epoll.epoll_pwait2
+
+ # sys/ioctl.h entrypoints
+ libc.src.sys.ioctl.ioctl
+
+ # sys/mman.h entrypoints
+ libc.src.sys.mman.madvise
+ libc.src.sys.mman.mincore
+ libc.src.sys.mman.mlock
+ libc.src.sys.mman.mlock2
+ libc.src.sys.mman.mlockall
+ libc.src.sys.mman.mmap
+ libc.src.sys.mman.mremap
+ libc.src.sys.mman.mprotect
+ libc.src.sys.mman.msync
+ libc.src.sys.mman.munlock
+ libc.src.sys.mman.munlockall
+ libc.src.sys.mman.munmap
+ libc.src.sys.mman.remap_file_pages
+ libc.src.sys.mman.posix_madvise
+ libc.src.sys.mman.shm_open
+ libc.src.sys.mman.shm_unlink
+
+ # sys/random.h entrypoints
+ libc.src.sys.random.getrandom
+
+ # sys/resource.h entrypoints
+ libc.src.sys.resource.getrlimit
+ libc.src.sys.resource.setrlimit
+
+ # sys/sendfile entrypoints
+ libc.src.sys.sendfile.sendfile
+
+ # sys/stat.h entrypoints
+ libc.src.sys.stat.chmod
+ libc.src.sys.stat.fchmod
+ libc.src.sys.stat.fchmodat
+ libc.src.sys.stat.fstat
+ libc.src.sys.stat.lstat
+ libc.src.sys.stat.mkdir
+ libc.src.sys.stat.mkdirat
+ libc.src.sys.stat.stat
+
+ # sys/statvfs.h
+ libc.src.sys.statvfs.fstatvfs
+ libc.src.sys.statvfs.statvfs
+
+ # sys/utsname.h entrypoints
+ libc.src.sys.utsname.uname
+
+ # sys/wait.h entrypoints
+ libc.src.sys.wait.wait
+ libc.src.sys.wait.wait4
+ libc.src.sys.wait.waitpid
+
+ # sys/prctl.h entrypoints
+ libc.src.sys.prctl.prctl
+
+ # sys/auxv.h entrypoints
+ libc.src.sys.auxv.getauxval
+
+ # termios.h entrypoints
+ libc.src.termios.cfgetispeed
+ libc.src.termios.cfgetospeed
+ libc.src.termios.cfsetispeed
+ libc.src.termios.cfsetospeed
+ libc.src.termios.tcdrain
+ libc.src.termios.tcflow
+ libc.src.termios.tcflush
+ libc.src.termios.tcgetattr
+ libc.src.termios.tcgetsid
+ libc.src.termios.tcsendbreak
+ libc.src.termios.tcsetattr
+
+ # unistd.h entrypoints
+ libc.src.unistd.access
+ libc.src.unistd.chdir
+ libc.src.unistd.close
+ libc.src.unistd.dup
+ libc.src.unistd.dup2
+ libc.src.unistd.dup3
+ libc.src.unistd.execve
+ libc.src.unistd.faccessat
+ libc.src.unistd.fchdir
+ libc.src.unistd.fchown
+ libc.src.unistd.fpathconf
+ libc.src.unistd.fsync
+ libc.src.unistd.ftruncate
+ libc.src.unistd.getcwd
+ libc.src.unistd.getentropy
+ libc.src.unistd.geteuid
+ libc.src.unistd.gethostname
+ libc.src.unistd.getpagesize
+ libc.src.unistd.getpid
+ libc.src.unistd.getppid
+ libc.src.unistd.getsid
+ libc.src.unistd.gettid
+ libc.src.unistd.getuid
+ libc.src.unistd.isatty
+ libc.src.unistd.link
+ libc.src.unistd.linkat
+ libc.src.unistd.lseek
+ libc.src.unistd.pathconf
+ libc.src.unistd.pipe
+ libc.src.unistd.pipe2
+ libc.src.unistd.pread
+ libc.src.unistd.pwrite
+ libc.src.unistd.read
+ libc.src.unistd.readlink
+ libc.src.unistd.readlinkat
+ libc.src.unistd.rmdir
+ libc.src.unistd.setsid
+ libc.src.unistd.symlink
+ libc.src.unistd.symlinkat
+ libc.src.unistd.sysconf
+ libc.src.unistd.truncate
+ libc.src.unistd.unlink
+ libc.src.unistd.unlinkat
+ libc.src.unistd.write
+
+ # wchar.h entrypoints
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # sys/uio.h entrypoints
+ libc.src.sys.uio.writev
+ libc.src.sys.uio.readv
+
+ # sys/time.h entrypoints
+ libc.src.sys.time.setitimer
+ libc.src.sys.time.getitimer
+)
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # malloc.h external entrypoints
+ libc.src.stdlib.mallopt
+ )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acoshf16
+ libc.src.math.asinpif16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cospif16
+ libc.src.math.expf16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ # libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ # libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ # libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ # libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ # libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ # libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ # libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.logbf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ # libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ # Temporarily disable nexttowardf16 on aarch64 because the conversion
+ # between _Float16 and long double will crash clang-11. This is fixed in
+ # clang-12 and after: https://godbolt.org/z/8ceT9454c
+ # libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.rsqrtf
+ libc.src.math.rsqrtf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ # if(LIBC_TYPES_HAS_FLOAT128)
+ # list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # # math.h C23 mixed _Float16 and _Float128 entrypoints
+ # libc.src.math.f16addf128
+ # libc.src.math.f16divf128
+ # libc.src.math.f16fmaf128
+ # libc.src.math.f16mulf128
+ # libc.src.math.f16sqrtf128
+ # libc.src.math.f16subf128
+ # )
+ # endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # dirent.h entrypoints
+ libc.src.dirent.closedir
+ libc.src.dirent.dirfd
+ libc.src.dirent.opendir
+ libc.src.dirent.readdir
+
+ # arpa/inet.h entrypoints
+ libc.src.arpa.inet.htonl
+ libc.src.arpa.inet.htons
+ libc.src.arpa.inet.inet_addr
+ libc.src.arpa.inet.inet_aton
+ libc.src.arpa.inet.ntohl
+ libc.src.arpa.inet.ntohs
+
+ # pthread.h entrypoints
+ libc.src.pthread.pthread_atfork
+ libc.src.pthread.pthread_attr_destroy
+ libc.src.pthread.pthread_attr_getdetachstate
+ libc.src.pthread.pthread_attr_getguardsize
+ libc.src.pthread.pthread_attr_getstack
+ libc.src.pthread.pthread_attr_getstacksize
+ libc.src.pthread.pthread_attr_init
+ libc.src.pthread.pthread_attr_setdetachstate
+ libc.src.pthread.pthread_attr_setguardsize
+ libc.src.pthread.pthread_attr_setstack
+ libc.src.pthread.pthread_attr_setstacksize
+ libc.src.pthread.pthread_condattr_destroy
+ libc.src.pthread.pthread_condattr_getclock
+ libc.src.pthread.pthread_condattr_getpshared
+ libc.src.pthread.pthread_condattr_init
+ libc.src.pthread.pthread_condattr_setclock
+ libc.src.pthread.pthread_condattr_setpshared
+ libc.src.pthread.pthread_create
+ libc.src.pthread.pthread_detach
+ libc.src.pthread.pthread_equal
+ libc.src.pthread.pthread_exit
+ libc.src.pthread.pthread_getname_np
+ libc.src.pthread.pthread_getspecific
+ libc.src.pthread.pthread_join
+ libc.src.pthread.pthread_key_create
+ libc.src.pthread.pthread_key_delete
+ libc.src.pthread.pthread_mutex_destroy
+ libc.src.pthread.pthread_mutex_init
+ libc.src.pthread.pthread_mutex_lock
+ libc.src.pthread.pthread_mutex_unlock
+ libc.src.pthread.pthread_mutexattr_destroy
+ libc.src.pthread.pthread_mutexattr_getpshared
+ libc.src.pthread.pthread_mutexattr_getrobust
+ libc.src.pthread.pthread_mutexattr_gettype
+ libc.src.pthread.pthread_mutexattr_init
+ libc.src.pthread.pthread_mutexattr_setpshared
+ libc.src.pthread.pthread_mutexattr_setrobust
+ libc.src.pthread.pthread_mutexattr_settype
+ libc.src.pthread.pthread_once
+ libc.src.pthread.pthread_rwlock_clockrdlock
+ libc.src.pthread.pthread_rwlock_clockwrlock
+ libc.src.pthread.pthread_rwlock_destroy
+ libc.src.pthread.pthread_rwlock_init
+ libc.src.pthread.pthread_rwlock_rdlock
+ libc.src.pthread.pthread_rwlock_timedrdlock
+ libc.src.pthread.pthread_rwlock_timedwrlock
+ libc.src.pthread.pthread_rwlock_tryrdlock
+ libc.src.pthread.pthread_rwlock_trywrlock
+ libc.src.pthread.pthread_rwlock_unlock
+ libc.src.pthread.pthread_rwlock_wrlock
+ libc.src.pthread.pthread_rwlockattr_destroy
+ libc.src.pthread.pthread_rwlockattr_getkind_np
+ libc.src.pthread.pthread_rwlockattr_getpshared
+ libc.src.pthread.pthread_rwlockattr_init
+ libc.src.pthread.pthread_rwlockattr_setkind_np
+ libc.src.pthread.pthread_rwlockattr_setpshared
+ libc.src.pthread.pthread_spin_destroy
+ libc.src.pthread.pthread_spin_init
+ libc.src.pthread.pthread_spin_lock
+ libc.src.pthread.pthread_spin_trylock
+ libc.src.pthread.pthread_spin_unlock
+ libc.src.pthread.pthread_self
+ libc.src.pthread.pthread_setname_np
+ libc.src.pthread.pthread_setspecific
+
+ # sched.h entrypoints
+ libc.src.sched.__sched_getcpucount
+ libc.src.sched.__sched_setcpuzero
+ libc.src.sched.__sched_setcpuset
+ libc.src.sched.__sched_getcpuisset
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.clearerr_unlocked
+ libc.src.stdio.fclose
+ libc.src.stdio.fdopen
+ libc.src.stdio.feof
+ libc.src.stdio.feof_unlocked
+ libc.src.stdio.ferror
+ libc.src.stdio.ferror_unlocked
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgetc_unlocked
+ libc.src.stdio.fgets
+ libc.src.stdio.fileno
+ libc.src.stdio.flockfile
+ libc.src.stdio.fopen
+ libc.src.stdio.fopencookie
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fread_unlocked
+ libc.src.stdio.fseek
+ libc.src.stdio.fseeko
+ libc.src.stdio.ftell
+ libc.src.stdio.ftello
+ libc.src.stdio.funlockfile
+ libc.src.stdio.fwrite
+ libc.src.stdio.fwrite_unlocked
+ libc.src.stdio.getc
+ libc.src.stdio.getc_unlocked
+ libc.src.stdio.getchar
+ libc.src.stdio.getchar_unlocked
+ libc.src.stdio.perror
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.setbuf
+ libc.src.stdio.setvbuf
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.atexit
+ libc.src.stdlib.exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.quick_exit
+
+ # signal.h entrypoints
+ libc.src.signal.kill
+ libc.src.signal.raise
+ libc.src.signal.sigaction
+ libc.src.signal.sigaddset
+ libc.src.signal.sigaltstack
+ libc.src.signal.sigdelset
+ libc.src.signal.sigemptyset
+ libc.src.signal.sigfillset
+ libc.src.signal.signal
+ libc.src.signal.sigprocmask
+
+ # spawn.h entrypoints
+ libc.src.spawn.posix_spawn
+ libc.src.spawn.posix_spawn_file_actions_addclose
+ libc.src.spawn.posix_spawn_file_actions_adddup2
+ libc.src.spawn.posix_spawn_file_actions_addopen
+ libc.src.spawn.posix_spawn_file_actions_destroy
+ libc.src.spawn.posix_spawn_file_actions_init
+
+ # search.h entrypoints
+ libc.src.search.hcreate
+ libc.src.search.hcreate_r
+ libc.src.search.hdestroy
+ libc.src.search.hdestroy_r
+ libc.src.search.hsearch
+ libc.src.search.hsearch_r
+ libc.src.search.insque
+ libc.src.search.lfind
+ libc.src.search.lsearch
+ libc.src.search.remque
+
+ # threads.h entrypoints
+ libc.src.threads.call_once
+ libc.src.threads.cnd_broadcast
+ libc.src.threads.cnd_destroy
+ libc.src.threads.cnd_init
+ libc.src.threads.cnd_signal
+ libc.src.threads.cnd_wait
+ libc.src.threads.mtx_destroy
+ libc.src.threads.mtx_init
+ libc.src.threads.mtx_lock
+ libc.src.threads.mtx_unlock
+ libc.src.threads.thrd_create
+ libc.src.threads.thrd_current
+ libc.src.threads.thrd_detach
+ libc.src.threads.thrd_equal
+ libc.src.threads.thrd_exit
+ libc.src.threads.thrd_join
+ libc.src.threads.tss_create
+ libc.src.threads.tss_delete
+ libc.src.threads.tss_get
+ libc.src.threads.tss_set
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.clock_settime
+ libc.src.time.difftime
+ libc.src.time.gettimeofday
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.mktime
+ libc.src.time.nanosleep
+ libc.src.time.time
+ libc.src.time.timespec_get
+
+ # unistd.h entrypoints
+ libc.src.unistd.__llvm_libc_syscall
+ libc.src.unistd._exit
+ libc.src.unistd.environ
+ libc.src.unistd.execv
+ libc.src.unistd.fork
+ libc.src.unistd.getopt
+ libc.src.unistd.optarg
+ libc.src.unistd.opterr
+ libc.src.unistd.optind
+ libc.src.unistd.optopt
+ libc.src.unistd.swab
+
+ # sys/select.h entrypoints
+ libc.src.sys.select.select
+
+ # sys/socket.h entrypoints
+ libc.src.sys.socket.bind
+ libc.src.sys.socket.socket
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt
index f04ac40145d3a..12d3ab7e1ee17 100644
--- a/libc/config/linux/arm/entrypoints.txt
+++ b/libc/config/linux/arm/entrypoints.txt
@@ -1,537 +1,538 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # poll.h entrypoints
- libc.src.poll.poll
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
-
- # sys/ioctl.h entrypoints
- libc.src.sys.ioctl.ioctl
-
- # sys/mman.h entrypoints
- libc.src.sys.mman.mmap
- libc.src.sys.mman.munmap
-
- # sys/prctl.h entrypoints
- libc.src.sys.prctl.prctl
-
- # sys/epoll.h entrypoints
- # Disabled due to epoll_wait syscalls not being available on this platform.
- # libc.src.sys.epoll.epoll_wait
- # libc.src.sys.epoll.epoll_pwait
- # libc.src.sys.epoll.epoll_pwait2
-
- # sys/time.h entrypoints
- libc.src.sys.time.setitimer
- libc.src.sys.time.getitimer
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-)
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # search.h entrypoints
- libc.src.search.lfind
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
- )
-endif()
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # malloc.h external entrypoints
- libc.src.stdlib.mallopt
- )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.dfmal
- libc.src.math.dsqrtl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmul
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # poll.h entrypoints
+ libc.src.poll.poll
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+
+ # sys/ioctl.h entrypoints
+ libc.src.sys.ioctl.ioctl
+
+ # sys/mman.h entrypoints
+ libc.src.sys.mman.mmap
+ libc.src.sys.mman.munmap
+
+ # sys/prctl.h entrypoints
+ libc.src.sys.prctl.prctl
+
+ # sys/epoll.h entrypoints
+ # Disabled due to epoll_wait syscalls not being available on this platform.
+ # libc.src.sys.epoll.epoll_wait
+ # libc.src.sys.epoll.epoll_pwait
+ # libc.src.sys.epoll.epoll_pwait2
+
+ # sys/time.h entrypoints
+ libc.src.sys.time.setitimer
+ libc.src.sys.time.getitimer
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+)
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # search.h entrypoints
+ libc.src.search.lfind
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+ )
+endif()
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # malloc.h external entrypoints
+ libc.src.stdlib.mallopt
+ )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.dfmal
+ libc.src.math.dsqrtl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmul
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt
index 7baf4de9d8a5b..ca8df44ca2b7f 100644
--- a/libc/config/linux/riscv/entrypoints.txt
+++ b/libc/config/linux/riscv/entrypoints.txt
@@ -1,1331 +1,1332 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # dlfcn.h entrypoints
- libc.src.dlfcn.dlclose
- libc.src.dlfcn.dlerror
- libc.src.dlfcn.dlopen
- libc.src.dlfcn.dlsym
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # fcntl.h entrypoints
- libc.src.fcntl.creat
- libc.src.fcntl.fcntl
- libc.src.fcntl.open
- libc.src.fcntl.openat
-
- # poll.h entrypoints
- libc.src.poll.poll
-
- # sched.h entrypoints
- libc.src.sched.sched_get_priority_max
- libc.src.sched.sched_get_priority_min
- libc.src.sched.sched_getaffinity
- libc.src.sched.sched_getparam
- libc.src.sched.sched_getscheduler
- libc.src.sched.sched_rr_get_interval
- libc.src.sched.sched_setaffinity
- libc.src.sched.sched_setparam
- libc.src.sched.sched_setscheduler
- libc.src.sched.sched_yield
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strsignal
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib.a64l
- libc.src.stdlib.abs
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strfromd
- libc.src.stdlib.strfromf
- libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # stdio.h entrypoints
- libc.src.stdio.fprintf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.printf
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.asprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.vfprintf
- libc.src.stdio.vprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vasprintf
-
- # sys/epoll.h entrypoints
- libc.src.sys.epoll.epoll_create
- libc.src.sys.epoll.epoll_create1
- libc.src.sys.epoll.epoll_ctl
- libc.src.sys.epoll.epoll_pwait
- libc.src.sys.epoll.epoll_wait
- # TODO: Need to check if pwait2 is available before providing.
- # https://github.com/llvm/llvm-project/issues/80060
- # libc.src.sys.epoll.epoll_pwait2
-
- # sys/ioctl.h entrypoints
- libc.src.sys.ioctl.ioctl
-
- # sys/mman.h entrypoints
- libc.src.sys.mman.madvise
- libc.src.sys.mman.mincore
- libc.src.sys.mman.mlock
- libc.src.sys.mman.mlock2
- libc.src.sys.mman.mlockall
- libc.src.sys.mman.mmap
- libc.src.sys.mman.mremap
- libc.src.sys.mman.mprotect
- libc.src.sys.mman.msync
- libc.src.sys.mman.munlock
- libc.src.sys.mman.munlockall
- libc.src.sys.mman.munmap
- libc.src.sys.mman.remap_file_pages
- libc.src.sys.mman.posix_madvise
- libc.src.sys.mman.shm_open
- libc.src.sys.mman.shm_unlink
-
- # sys/random.h entrypoints
- libc.src.sys.random.getrandom
-
- # sys/resource.h entrypoints
- libc.src.sys.resource.getrlimit
- libc.src.sys.resource.setrlimit
-
- # sys/sendfile entrypoints
- libc.src.sys.sendfile.sendfile
-
- # sys/stat.h entrypoints
- libc.src.sys.stat.chmod
- libc.src.sys.stat.fchmod
- libc.src.sys.stat.fchmodat
- libc.src.sys.stat.fstat
- libc.src.sys.stat.lstat
- libc.src.sys.stat.mkdir
- libc.src.sys.stat.mkdirat
- libc.src.sys.stat.stat
-
- # sys/statvfs.h
- libc.src.sys.statvfs.fstatvfs
- libc.src.sys.statvfs.statvfs
-
- # sys/utimes.h entrypoints
- libc.src.sys.time.utimes
-
- # sys/utsname.h entrypoints
- libc.src.sys.utsname.uname
-
- # sys/wait.h entrypoints
- libc.src.sys.wait.wait
- libc.src.sys.wait.wait4
- libc.src.sys.wait.waitpid
-
- # sys/prctl.h entrypoints
- libc.src.sys.prctl.prctl
-
- # sys/auxv.h entrypoints
- libc.src.sys.auxv.getauxval
-
- # termios.h entrypoints
- libc.src.termios.cfgetispeed
- libc.src.termios.cfgetospeed
- libc.src.termios.cfsetispeed
- libc.src.termios.cfsetospeed
- libc.src.termios.tcdrain
- libc.src.termios.tcflow
- libc.src.termios.tcflush
- libc.src.termios.tcgetattr
- libc.src.termios.tcgetsid
- libc.src.termios.tcsendbreak
- libc.src.termios.tcsetattr
-
- # unistd.h entrypoints
- libc.src.unistd.access
- libc.src.unistd.chdir
- libc.src.unistd.close
- libc.src.unistd.dup
- libc.src.unistd.dup2
- libc.src.unistd.dup3
- libc.src.unistd.execve
- libc.src.unistd.faccessat
- libc.src.unistd.fchdir
- libc.src.unistd.fpathconf
- libc.src.unistd.fsync
- libc.src.unistd.ftruncate
- libc.src.unistd.getcwd
- libc.src.unistd.getentropy
- libc.src.unistd.geteuid
- libc.src.unistd.gethostname
- libc.src.unistd.getpagesize
- libc.src.unistd.getpid
- libc.src.unistd.getppid
- libc.src.unistd.getsid
- libc.src.unistd.gettid
- libc.src.unistd.getuid
- libc.src.unistd.isatty
- libc.src.unistd.link
- libc.src.unistd.linkat
- libc.src.unistd.lseek
- libc.src.unistd.pathconf
- libc.src.unistd.pipe
- libc.src.unistd.pipe2
- libc.src.unistd.pread
- libc.src.unistd.pwrite
- libc.src.unistd.read
- libc.src.unistd.readlink
- libc.src.unistd.readlinkat
- libc.src.unistd.rmdir
- libc.src.unistd.setsid
- libc.src.unistd.symlink
- libc.src.unistd.symlinkat
- libc.src.unistd.sysconf
- libc.src.unistd.truncate
- libc.src.unistd.unlink
- libc.src.unistd.unlinkat
- libc.src.unistd.write
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # sys/uio.h entrypoints
- libc.src.sys.uio.writev
- libc.src.sys.uio.readv
-
- # sys/time.h entrypoints
- libc.src.sys.time.setitimer
- libc.src.sys.time.getitimer
-)
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # malloc.h external entrypoints
- libc.src.stdlib.mallopt
- )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.acospif16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.atanhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.rsqrtf
- libc.src.math.rsqrtf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- libc.src.stdfix.idivr
- libc.src.stdfix.idivlr
- libc.src.stdfix.idivk
- libc.src.stdfix.idivlk
- libc.src.stdfix.idivur
- libc.src.stdfix.idivulr
- libc.src.stdfix.idivuk
- libc.src.stdfix.idivulk
- libc.src.stdfix.rdivi
- )
-endif()
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # dirent.h entrypoints
- libc.src.dirent.closedir
- libc.src.dirent.dirfd
- libc.src.dirent.opendir
- libc.src.dirent.readdir
-
- # arpa/inet.h entrypoints
- libc.src.arpa.inet.htonl
- libc.src.arpa.inet.htons
- libc.src.arpa.inet.inet_addr
- libc.src.arpa.inet.inet_aton
- libc.src.arpa.inet.ntohl
- libc.src.arpa.inet.ntohs
-
- # pthread.h entrypoints
- libc.src.pthread.pthread_atfork
- libc.src.pthread.pthread_attr_destroy
- libc.src.pthread.pthread_attr_getdetachstate
- libc.src.pthread.pthread_attr_getguardsize
- libc.src.pthread.pthread_attr_getstack
- libc.src.pthread.pthread_attr_getstacksize
- libc.src.pthread.pthread_attr_init
- libc.src.pthread.pthread_attr_setdetachstate
- libc.src.pthread.pthread_attr_setguardsize
- libc.src.pthread.pthread_attr_setstack
- libc.src.pthread.pthread_attr_setstacksize
- libc.src.pthread.pthread_condattr_destroy
- libc.src.pthread.pthread_condattr_getclock
- libc.src.pthread.pthread_condattr_getpshared
- libc.src.pthread.pthread_condattr_init
- libc.src.pthread.pthread_condattr_setclock
- libc.src.pthread.pthread_condattr_setpshared
- libc.src.pthread.pthread_create
- libc.src.pthread.pthread_detach
- libc.src.pthread.pthread_equal
- libc.src.pthread.pthread_exit
- libc.src.pthread.pthread_getname_np
- libc.src.pthread.pthread_getspecific
- libc.src.pthread.pthread_join
- libc.src.pthread.pthread_key_create
- libc.src.pthread.pthread_key_delete
- libc.src.pthread.pthread_mutex_destroy
- libc.src.pthread.pthread_mutex_init
- libc.src.pthread.pthread_mutex_lock
- libc.src.pthread.pthread_mutex_unlock
- libc.src.pthread.pthread_mutexattr_destroy
- libc.src.pthread.pthread_mutexattr_getpshared
- libc.src.pthread.pthread_mutexattr_getrobust
- libc.src.pthread.pthread_mutexattr_gettype
- libc.src.pthread.pthread_mutexattr_init
- libc.src.pthread.pthread_mutexattr_setpshared
- libc.src.pthread.pthread_mutexattr_setrobust
- libc.src.pthread.pthread_mutexattr_settype
- libc.src.pthread.pthread_once
- libc.src.pthread.pthread_rwlock_clockrdlock
- libc.src.pthread.pthread_rwlock_clockwrlock
- libc.src.pthread.pthread_rwlock_destroy
- libc.src.pthread.pthread_rwlock_init
- libc.src.pthread.pthread_rwlock_rdlock
- libc.src.pthread.pthread_rwlock_timedrdlock
- libc.src.pthread.pthread_rwlock_timedwrlock
- libc.src.pthread.pthread_rwlock_tryrdlock
- libc.src.pthread.pthread_rwlock_trywrlock
- libc.src.pthread.pthread_rwlock_unlock
- libc.src.pthread.pthread_rwlock_wrlock
- libc.src.pthread.pthread_rwlockattr_destroy
- libc.src.pthread.pthread_rwlockattr_getkind_np
- libc.src.pthread.pthread_rwlockattr_getpshared
- libc.src.pthread.pthread_rwlockattr_init
- libc.src.pthread.pthread_rwlockattr_setkind_np
- libc.src.pthread.pthread_rwlockattr_setpshared
- libc.src.pthread.pthread_spin_destroy
- libc.src.pthread.pthread_spin_init
- libc.src.pthread.pthread_spin_lock
- libc.src.pthread.pthread_spin_trylock
- libc.src.pthread.pthread_spin_unlock
- libc.src.pthread.pthread_self
- libc.src.pthread.pthread_setname_np
- libc.src.pthread.pthread_setspecific
-
- # sched.h entrypoints
- libc.src.sched.__sched_getcpucount
- libc.src.sched.__sched_setcpuzero
- libc.src.sched.__sched_setcpuset
- libc.src.sched.__sched_getcpuisset
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.clearerr_unlocked
- libc.src.stdio.fclose
- libc.src.stdio.fdopen
- libc.src.stdio.feof
- libc.src.stdio.feof_unlocked
- libc.src.stdio.ferror
- libc.src.stdio.ferror_unlocked
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgetc_unlocked
- libc.src.stdio.fgets
- libc.src.stdio.fileno
- libc.src.stdio.flockfile
- libc.src.stdio.fopen
- libc.src.stdio.fopencookie
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fread_unlocked
- libc.src.stdio.fseek
- libc.src.stdio.fseeko
- libc.src.stdio.ftell
- libc.src.stdio.ftello
- libc.src.stdio.funlockfile
- libc.src.stdio.fwrite
- libc.src.stdio.fwrite_unlocked
- libc.src.stdio.getc
- libc.src.stdio.getc_unlocked
- libc.src.stdio.getchar
- libc.src.stdio.getchar_unlocked
- libc.src.stdio.perror
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.setbuf
- libc.src.stdio.setvbuf
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.atexit
- libc.src.stdlib.exit
- libc.src.stdlib.getenv
- libc.src.stdlib.quick_exit
-
- # signal.h entrypoints
- libc.src.signal.kill
- libc.src.signal.raise
- libc.src.signal.sigaction
- libc.src.signal.sigaddset
- libc.src.signal.sigaltstack
- libc.src.signal.sigdelset
- libc.src.signal.sigemptyset
- libc.src.signal.sigfillset
- libc.src.signal.signal
- libc.src.signal.sigprocmask
-
- # spawn.h entrypoints
- libc.src.spawn.posix_spawn
- libc.src.spawn.posix_spawn_file_actions_addclose
- libc.src.spawn.posix_spawn_file_actions_adddup2
- libc.src.spawn.posix_spawn_file_actions_addopen
- libc.src.spawn.posix_spawn_file_actions_destroy
- libc.src.spawn.posix_spawn_file_actions_init
-
- # search.h entrypoints
- libc.src.search.hcreate
- libc.src.search.hcreate_r
- libc.src.search.hdestroy
- libc.src.search.hdestroy_r
- libc.src.search.hsearch
- libc.src.search.hsearch_r
- libc.src.search.insque
- libc.src.search.lfind
- libc.src.search.lsearch
- libc.src.search.remque
-
- # threads.h entrypoints
- libc.src.threads.call_once
- libc.src.threads.cnd_broadcast
- libc.src.threads.cnd_destroy
- libc.src.threads.cnd_init
- libc.src.threads.cnd_signal
- libc.src.threads.cnd_wait
- libc.src.threads.mtx_destroy
- libc.src.threads.mtx_init
- libc.src.threads.mtx_lock
- libc.src.threads.mtx_unlock
- libc.src.threads.thrd_create
- libc.src.threads.thrd_current
- libc.src.threads.thrd_detach
- libc.src.threads.thrd_equal
- libc.src.threads.thrd_exit
- libc.src.threads.thrd_join
- libc.src.threads.tss_create
- libc.src.threads.tss_delete
- libc.src.threads.tss_get
- libc.src.threads.tss_set
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.clock_settime
- libc.src.time.difftime
- libc.src.time.gettimeofday
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.mktime
- libc.src.time.nanosleep
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.time
- libc.src.time.timespec_get
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # unistd.h entrypoints
- libc.src.unistd.__llvm_libc_syscall
- libc.src.unistd._exit
- libc.src.unistd.environ
- libc.src.unistd.execv
- libc.src.unistd.fork
- libc.src.unistd.getopt
- libc.src.unistd.optarg
- libc.src.unistd.opterr
- libc.src.unistd.optind
- libc.src.unistd.optopt
- libc.src.unistd.swab
-
- # sys/select.h entrypoints
- libc.src.sys.select.select
-
- # sys/socket.h entrypoints
- libc.src.sys.socket.bind
- libc.src.sys.socket.socket
- libc.src.sys.socket.socketpair
- libc.src.sys.socket.send
- libc.src.sys.socket.sendto
- libc.src.sys.socket.sendmsg
- libc.src.sys.socket.recv
- libc.src.sys.socket.recvfrom
- libc.src.sys.socket.recvmsg
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # dlfcn.h entrypoints
+ libc.src.dlfcn.dlclose
+ libc.src.dlfcn.dlerror
+ libc.src.dlfcn.dlopen
+ libc.src.dlfcn.dlsym
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # fcntl.h entrypoints
+ libc.src.fcntl.creat
+ libc.src.fcntl.fcntl
+ libc.src.fcntl.open
+ libc.src.fcntl.openat
+
+ # poll.h entrypoints
+ libc.src.poll.poll
+
+ # sched.h entrypoints
+ libc.src.sched.sched_get_priority_max
+ libc.src.sched.sched_get_priority_min
+ libc.src.sched.sched_getaffinity
+ libc.src.sched.sched_getparam
+ libc.src.sched.sched_getscheduler
+ libc.src.sched.sched_rr_get_interval
+ libc.src.sched.sched_setaffinity
+ libc.src.sched.sched_setparam
+ libc.src.sched.sched_setscheduler
+ libc.src.sched.sched_yield
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strsignal
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abs
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strfromd
+ libc.src.stdlib.strfromf
+ libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # stdio.h entrypoints
+ libc.src.stdio.fprintf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.printf
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vasprintf
+
+ # sys/epoll.h entrypoints
+ libc.src.sys.epoll.epoll_create
+ libc.src.sys.epoll.epoll_create1
+ libc.src.sys.epoll.epoll_ctl
+ libc.src.sys.epoll.epoll_pwait
+ libc.src.sys.epoll.epoll_wait
+ # TODO: Need to check if pwait2 is available before providing.
+ # https://github.com/llvm/llvm-project/issues/80060
+ # libc.src.sys.epoll.epoll_pwait2
+
+ # sys/ioctl.h entrypoints
+ libc.src.sys.ioctl.ioctl
+
+ # sys/mman.h entrypoints
+ libc.src.sys.mman.madvise
+ libc.src.sys.mman.mincore
+ libc.src.sys.mman.mlock
+ libc.src.sys.mman.mlock2
+ libc.src.sys.mman.mlockall
+ libc.src.sys.mman.mmap
+ libc.src.sys.mman.mremap
+ libc.src.sys.mman.mprotect
+ libc.src.sys.mman.msync
+ libc.src.sys.mman.munlock
+ libc.src.sys.mman.munlockall
+ libc.src.sys.mman.munmap
+ libc.src.sys.mman.remap_file_pages
+ libc.src.sys.mman.posix_madvise
+ libc.src.sys.mman.shm_open
+ libc.src.sys.mman.shm_unlink
+
+ # sys/random.h entrypoints
+ libc.src.sys.random.getrandom
+
+ # sys/resource.h entrypoints
+ libc.src.sys.resource.getrlimit
+ libc.src.sys.resource.setrlimit
+
+ # sys/sendfile entrypoints
+ libc.src.sys.sendfile.sendfile
+
+ # sys/stat.h entrypoints
+ libc.src.sys.stat.chmod
+ libc.src.sys.stat.fchmod
+ libc.src.sys.stat.fchmodat
+ libc.src.sys.stat.fstat
+ libc.src.sys.stat.lstat
+ libc.src.sys.stat.mkdir
+ libc.src.sys.stat.mkdirat
+ libc.src.sys.stat.stat
+
+ # sys/statvfs.h
+ libc.src.sys.statvfs.fstatvfs
+ libc.src.sys.statvfs.statvfs
+
+ # sys/utimes.h entrypoints
+ libc.src.sys.time.utimes
+
+ # sys/utsname.h entrypoints
+ libc.src.sys.utsname.uname
+
+ # sys/wait.h entrypoints
+ libc.src.sys.wait.wait
+ libc.src.sys.wait.wait4
+ libc.src.sys.wait.waitpid
+
+ # sys/prctl.h entrypoints
+ libc.src.sys.prctl.prctl
+
+ # sys/auxv.h entrypoints
+ libc.src.sys.auxv.getauxval
+
+ # termios.h entrypoints
+ libc.src.termios.cfgetispeed
+ libc.src.termios.cfgetospeed
+ libc.src.termios.cfsetispeed
+ libc.src.termios.cfsetospeed
+ libc.src.termios.tcdrain
+ libc.src.termios.tcflow
+ libc.src.termios.tcflush
+ libc.src.termios.tcgetattr
+ libc.src.termios.tcgetsid
+ libc.src.termios.tcsendbreak
+ libc.src.termios.tcsetattr
+
+ # unistd.h entrypoints
+ libc.src.unistd.access
+ libc.src.unistd.chdir
+ libc.src.unistd.close
+ libc.src.unistd.dup
+ libc.src.unistd.dup2
+ libc.src.unistd.dup3
+ libc.src.unistd.execve
+ libc.src.unistd.faccessat
+ libc.src.unistd.fchdir
+ libc.src.unistd.fpathconf
+ libc.src.unistd.fsync
+ libc.src.unistd.ftruncate
+ libc.src.unistd.getcwd
+ libc.src.unistd.getentropy
+ libc.src.unistd.geteuid
+ libc.src.unistd.gethostname
+ libc.src.unistd.getpagesize
+ libc.src.unistd.getpid
+ libc.src.unistd.getppid
+ libc.src.unistd.getsid
+ libc.src.unistd.gettid
+ libc.src.unistd.getuid
+ libc.src.unistd.isatty
+ libc.src.unistd.link
+ libc.src.unistd.linkat
+ libc.src.unistd.lseek
+ libc.src.unistd.pathconf
+ libc.src.unistd.pipe
+ libc.src.unistd.pipe2
+ libc.src.unistd.pread
+ libc.src.unistd.pwrite
+ libc.src.unistd.read
+ libc.src.unistd.readlink
+ libc.src.unistd.readlinkat
+ libc.src.unistd.rmdir
+ libc.src.unistd.setsid
+ libc.src.unistd.symlink
+ libc.src.unistd.symlinkat
+ libc.src.unistd.sysconf
+ libc.src.unistd.truncate
+ libc.src.unistd.unlink
+ libc.src.unistd.unlinkat
+ libc.src.unistd.write
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # sys/uio.h entrypoints
+ libc.src.sys.uio.writev
+ libc.src.sys.uio.readv
+
+ # sys/time.h entrypoints
+ libc.src.sys.time.setitimer
+ libc.src.sys.time.getitimer
+)
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # malloc.h external entrypoints
+ libc.src.stdlib.mallopt
+ )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.acospif16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.atanhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.rsqrtf
+ libc.src.math.rsqrtf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ libc.src.stdfix.idivr
+ libc.src.stdfix.idivlr
+ libc.src.stdfix.idivk
+ libc.src.stdfix.idivlk
+ libc.src.stdfix.idivur
+ libc.src.stdfix.idivulr
+ libc.src.stdfix.idivuk
+ libc.src.stdfix.idivulk
+ libc.src.stdfix.rdivi
+ )
+endif()
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # dirent.h entrypoints
+ libc.src.dirent.closedir
+ libc.src.dirent.dirfd
+ libc.src.dirent.opendir
+ libc.src.dirent.readdir
+
+ # arpa/inet.h entrypoints
+ libc.src.arpa.inet.htonl
+ libc.src.arpa.inet.htons
+ libc.src.arpa.inet.inet_addr
+ libc.src.arpa.inet.inet_aton
+ libc.src.arpa.inet.ntohl
+ libc.src.arpa.inet.ntohs
+
+ # pthread.h entrypoints
+ libc.src.pthread.pthread_atfork
+ libc.src.pthread.pthread_attr_destroy
+ libc.src.pthread.pthread_attr_getdetachstate
+ libc.src.pthread.pthread_attr_getguardsize
+ libc.src.pthread.pthread_attr_getstack
+ libc.src.pthread.pthread_attr_getstacksize
+ libc.src.pthread.pthread_attr_init
+ libc.src.pthread.pthread_attr_setdetachstate
+ libc.src.pthread.pthread_attr_setguardsize
+ libc.src.pthread.pthread_attr_setstack
+ libc.src.pthread.pthread_attr_setstacksize
+ libc.src.pthread.pthread_condattr_destroy
+ libc.src.pthread.pthread_condattr_getclock
+ libc.src.pthread.pthread_condattr_getpshared
+ libc.src.pthread.pthread_condattr_init
+ libc.src.pthread.pthread_condattr_setclock
+ libc.src.pthread.pthread_condattr_setpshared
+ libc.src.pthread.pthread_create
+ libc.src.pthread.pthread_detach
+ libc.src.pthread.pthread_equal
+ libc.src.pthread.pthread_exit
+ libc.src.pthread.pthread_getname_np
+ libc.src.pthread.pthread_getspecific
+ libc.src.pthread.pthread_join
+ libc.src.pthread.pthread_key_create
+ libc.src.pthread.pthread_key_delete
+ libc.src.pthread.pthread_mutex_destroy
+ libc.src.pthread.pthread_mutex_init
+ libc.src.pthread.pthread_mutex_lock
+ libc.src.pthread.pthread_mutex_unlock
+ libc.src.pthread.pthread_mutexattr_destroy
+ libc.src.pthread.pthread_mutexattr_getpshared
+ libc.src.pthread.pthread_mutexattr_getrobust
+ libc.src.pthread.pthread_mutexattr_gettype
+ libc.src.pthread.pthread_mutexattr_init
+ libc.src.pthread.pthread_mutexattr_setpshared
+ libc.src.pthread.pthread_mutexattr_setrobust
+ libc.src.pthread.pthread_mutexattr_settype
+ libc.src.pthread.pthread_once
+ libc.src.pthread.pthread_rwlock_clockrdlock
+ libc.src.pthread.pthread_rwlock_clockwrlock
+ libc.src.pthread.pthread_rwlock_destroy
+ libc.src.pthread.pthread_rwlock_init
+ libc.src.pthread.pthread_rwlock_rdlock
+ libc.src.pthread.pthread_rwlock_timedrdlock
+ libc.src.pthread.pthread_rwlock_timedwrlock
+ libc.src.pthread.pthread_rwlock_tryrdlock
+ libc.src.pthread.pthread_rwlock_trywrlock
+ libc.src.pthread.pthread_rwlock_unlock
+ libc.src.pthread.pthread_rwlock_wrlock
+ libc.src.pthread.pthread_rwlockattr_destroy
+ libc.src.pthread.pthread_rwlockattr_getkind_np
+ libc.src.pthread.pthread_rwlockattr_getpshared
+ libc.src.pthread.pthread_rwlockattr_init
+ libc.src.pthread.pthread_rwlockattr_setkind_np
+ libc.src.pthread.pthread_rwlockattr_setpshared
+ libc.src.pthread.pthread_spin_destroy
+ libc.src.pthread.pthread_spin_init
+ libc.src.pthread.pthread_spin_lock
+ libc.src.pthread.pthread_spin_trylock
+ libc.src.pthread.pthread_spin_unlock
+ libc.src.pthread.pthread_self
+ libc.src.pthread.pthread_setname_np
+ libc.src.pthread.pthread_setspecific
+
+ # sched.h entrypoints
+ libc.src.sched.__sched_getcpucount
+ libc.src.sched.__sched_setcpuzero
+ libc.src.sched.__sched_setcpuset
+ libc.src.sched.__sched_getcpuisset
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.clearerr_unlocked
+ libc.src.stdio.fclose
+ libc.src.stdio.fdopen
+ libc.src.stdio.feof
+ libc.src.stdio.feof_unlocked
+ libc.src.stdio.ferror
+ libc.src.stdio.ferror_unlocked
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgetc_unlocked
+ libc.src.stdio.fgets
+ libc.src.stdio.fileno
+ libc.src.stdio.flockfile
+ libc.src.stdio.fopen
+ libc.src.stdio.fopencookie
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fread_unlocked
+ libc.src.stdio.fseek
+ libc.src.stdio.fseeko
+ libc.src.stdio.ftell
+ libc.src.stdio.ftello
+ libc.src.stdio.funlockfile
+ libc.src.stdio.fwrite
+ libc.src.stdio.fwrite_unlocked
+ libc.src.stdio.getc
+ libc.src.stdio.getc_unlocked
+ libc.src.stdio.getchar
+ libc.src.stdio.getchar_unlocked
+ libc.src.stdio.perror
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.setbuf
+ libc.src.stdio.setvbuf
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.atexit
+ libc.src.stdlib.exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.quick_exit
+
+ # signal.h entrypoints
+ libc.src.signal.kill
+ libc.src.signal.raise
+ libc.src.signal.sigaction
+ libc.src.signal.sigaddset
+ libc.src.signal.sigaltstack
+ libc.src.signal.sigdelset
+ libc.src.signal.sigemptyset
+ libc.src.signal.sigfillset
+ libc.src.signal.signal
+ libc.src.signal.sigprocmask
+
+ # spawn.h entrypoints
+ libc.src.spawn.posix_spawn
+ libc.src.spawn.posix_spawn_file_actions_addclose
+ libc.src.spawn.posix_spawn_file_actions_adddup2
+ libc.src.spawn.posix_spawn_file_actions_addopen
+ libc.src.spawn.posix_spawn_file_actions_destroy
+ libc.src.spawn.posix_spawn_file_actions_init
+
+ # search.h entrypoints
+ libc.src.search.hcreate
+ libc.src.search.hcreate_r
+ libc.src.search.hdestroy
+ libc.src.search.hdestroy_r
+ libc.src.search.hsearch
+ libc.src.search.hsearch_r
+ libc.src.search.insque
+ libc.src.search.lfind
+ libc.src.search.lsearch
+ libc.src.search.remque
+
+ # threads.h entrypoints
+ libc.src.threads.call_once
+ libc.src.threads.cnd_broadcast
+ libc.src.threads.cnd_destroy
+ libc.src.threads.cnd_init
+ libc.src.threads.cnd_signal
+ libc.src.threads.cnd_wait
+ libc.src.threads.mtx_destroy
+ libc.src.threads.mtx_init
+ libc.src.threads.mtx_lock
+ libc.src.threads.mtx_unlock
+ libc.src.threads.thrd_create
+ libc.src.threads.thrd_current
+ libc.src.threads.thrd_detach
+ libc.src.threads.thrd_equal
+ libc.src.threads.thrd_exit
+ libc.src.threads.thrd_join
+ libc.src.threads.tss_create
+ libc.src.threads.tss_delete
+ libc.src.threads.tss_get
+ libc.src.threads.tss_set
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.clock_settime
+ libc.src.time.difftime
+ libc.src.time.gettimeofday
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.mktime
+ libc.src.time.nanosleep
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.time
+ libc.src.time.timespec_get
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # unistd.h entrypoints
+ libc.src.unistd.__llvm_libc_syscall
+ libc.src.unistd._exit
+ libc.src.unistd.environ
+ libc.src.unistd.execv
+ libc.src.unistd.fork
+ libc.src.unistd.getopt
+ libc.src.unistd.optarg
+ libc.src.unistd.opterr
+ libc.src.unistd.optind
+ libc.src.unistd.optopt
+ libc.src.unistd.swab
+
+ # sys/select.h entrypoints
+ libc.src.sys.select.select
+
+ # sys/socket.h entrypoints
+ libc.src.sys.socket.bind
+ libc.src.sys.socket.socket
+ libc.src.sys.socket.socketpair
+ libc.src.sys.socket.send
+ libc.src.sys.socket.sendto
+ libc.src.sys.socket.sendmsg
+ libc.src.sys.socket.recv
+ libc.src.sys.socket.recvfrom
+ libc.src.sys.socket.recvmsg
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index 9399b284fa2da..3959c6ddb8c3f 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -1,1402 +1,1403 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # dlfcn.h entrypoints
- libc.src.dlfcn.dladdr
- libc.src.dlfcn.dlclose
- libc.src.dlfcn.dlerror
- libc.src.dlfcn.dlopen
- libc.src.dlfcn.dlsym
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # fcntl.h entrypoints
- libc.src.fcntl.creat
- libc.src.fcntl.fcntl
- libc.src.fcntl.open
- libc.src.fcntl.openat
-
- # poll.h entrypoints
- libc.src.poll.poll
-
- # sched.h entrypoints
- libc.src.sched.getcpu
- libc.src.sched.sched_get_priority_max
- libc.src.sched.sched_get_priority_min
- libc.src.sched.sched_getaffinity
- libc.src.sched.sched_getparam
- libc.src.sched.sched_getscheduler
- libc.src.sched.sched_rr_get_interval
- libc.src.sched.sched_setaffinity
- libc.src.sched.sched_setparam
- libc.src.sched.sched_setscheduler
- libc.src.sched.sched_yield
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strsignal
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib.a64l
- libc.src.stdlib.abs
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strfromd
- libc.src.stdlib.strfromf
- libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # stdio.h entrypoints
- libc.src.stdio.fprintf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.printf
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.asprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.vfprintf
- libc.src.stdio.vprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vasprintf
-
- # sys/epoll.h entrypoints
- libc.src.sys.epoll.epoll_create
- libc.src.sys.epoll.epoll_create1
- libc.src.sys.epoll.epoll_ctl
- libc.src.sys.epoll.epoll_pwait
- libc.src.sys.epoll.epoll_wait
- # TODO: Need to check if pwait2 is available before providing.
- # https://github.com/llvm/llvm-project/issues/80060
- # libc.src.sys.epoll.epoll_pwait2
-
- # sys/ioctl.h entrypoints
- libc.src.sys.ioctl.ioctl
-
- # sys/mman.h entrypoints
- libc.src.sys.mman.madvise
- libc.src.sys.mman.mincore
- libc.src.sys.mman.mlock
- libc.src.sys.mman.mlock2
- libc.src.sys.mman.mlockall
- libc.src.sys.mman.mmap
- libc.src.sys.mman.mremap
- libc.src.sys.mman.mprotect
- libc.src.sys.mman.msync
- libc.src.sys.mman.munlock
- libc.src.sys.mman.munlockall
- libc.src.sys.mman.munmap
- libc.src.sys.mman.pkey_alloc
- libc.src.sys.mman.pkey_free
- libc.src.sys.mman.pkey_get
- libc.src.sys.mman.pkey_mprotect
- libc.src.sys.mman.pkey_set
- libc.src.sys.mman.remap_file_pages
- libc.src.sys.mman.posix_madvise
- libc.src.sys.mman.shm_open
- libc.src.sys.mman.shm_unlink
-
- # sys/random.h entrypoints
- libc.src.sys.random.getrandom
-
- # sys/resource.h entrypoints
- libc.src.sys.resource.getrlimit
- libc.src.sys.resource.setrlimit
-
- # sys/sendfile entrypoints
- libc.src.sys.sendfile.sendfile
-
- # sys/stat.h entrypoints
- libc.src.sys.stat.chmod
- libc.src.sys.stat.fchmod
- libc.src.sys.stat.fchmodat
- libc.src.sys.stat.fstat
- libc.src.sys.stat.lstat
- libc.src.sys.stat.mkdir
- libc.src.sys.stat.mkdirat
- libc.src.sys.stat.stat
-
- # sys/statvfs.h
- libc.src.sys.statvfs.fstatvfs
- libc.src.sys.statvfs.statvfs
-
- # sys/utimes.h entrypoints
- libc.src.sys.time.utimes
-
- # sys/utsname.h entrypoints
- libc.src.sys.utsname.uname
-
- # sys/wait.h entrypoints
- libc.src.sys.wait.wait
- libc.src.sys.wait.wait4
- libc.src.sys.wait.waitpid
-
- # sys/prctl.h entrypoints
- libc.src.sys.prctl.prctl
-
- # sys/auxv.h entrypoints
- libc.src.sys.auxv.getauxval
-
- # termios.h entrypoints
- libc.src.termios.cfgetispeed
- libc.src.termios.cfgetospeed
- libc.src.termios.cfsetispeed
- libc.src.termios.cfsetospeed
- libc.src.termios.tcdrain
- libc.src.termios.tcflow
- libc.src.termios.tcflush
- libc.src.termios.tcgetattr
- libc.src.termios.tcgetsid
- libc.src.termios.tcsendbreak
- libc.src.termios.tcsetattr
-
- # unistd.h entrypoints
- libc.src.unistd.access
- libc.src.unistd.chdir
- libc.src.unistd.chown
- libc.src.unistd.close
- libc.src.unistd.dup
- libc.src.unistd.dup2
- libc.src.unistd.dup3
- libc.src.unistd.execve
- libc.src.unistd.faccessat
- libc.src.unistd.fchdir
- libc.src.unistd.fchown
- libc.src.unistd.fpathconf
- libc.src.unistd.fsync
- libc.src.unistd.ftruncate
- libc.src.unistd.getcwd
- libc.src.unistd.getentropy
- libc.src.unistd.geteuid
- libc.src.unistd.gethostname
- libc.src.unistd.getpagesize
- libc.src.unistd.getpid
- libc.src.unistd.getppid
- libc.src.unistd.getsid
- libc.src.unistd.gettid
- libc.src.unistd.getgid
- libc.src.unistd.getuid
- libc.src.unistd.isatty
- libc.src.unistd.link
- libc.src.unistd.linkat
- libc.src.unistd.lseek
- libc.src.unistd.pathconf
- libc.src.unistd.pipe
- libc.src.unistd.pipe2
- libc.src.unistd.pread
- libc.src.unistd.pwrite
- libc.src.unistd.read
- libc.src.unistd.readlink
- libc.src.unistd.readlinkat
- libc.src.unistd.rmdir
- libc.src.unistd.setsid
- libc.src.unistd.symlink
- libc.src.unistd.symlinkat
- libc.src.unistd.sysconf
- libc.src.unistd.truncate
- libc.src.unistd.unlink
- libc.src.unistd.unlinkat
- libc.src.unistd.write
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wcsnlen
- libc.src.wchar.wctob
- libc.src.wchar.wmemmove
- libc.src.wchar.wmemset
- libc.src.wchar.wcschr
- libc.src.wchar.wcsncmp
- libc.src.wchar.wcscmp
- libc.src.wchar.wcspbrk
- libc.src.wchar.wcsrchr
- libc.src.wchar.wcsspn
- libc.src.wchar.wcscspn
- libc.src.wchar.wcsdup
- libc.src.wchar.wmemcmp
- libc.src.wchar.wmempcpy
- libc.src.wchar.wmemcpy
- libc.src.wchar.wcsncpy
- libc.src.wchar.wcscat
- libc.src.wchar.wcsstr
- libc.src.wchar.wcsncat
- libc.src.wchar.wcslcat
- libc.src.wchar.wcscpy
- libc.src.wchar.wcslcpy
- libc.src.wchar.wmemchr
- libc.src.wchar.wcpcpy
- libc.src.wchar.wcpncpy
- libc.src.wchar.wcstod
- libc.src.wchar.wcstof
- libc.src.wchar.wcstok
- libc.src.wchar.wcstol
- libc.src.wchar.wcstold
- libc.src.wchar.wcstoll
- libc.src.wchar.wcstoul
- libc.src.wchar.wcstoull
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # sys/uio.h entrypoints
- libc.src.sys.uio.writev
- libc.src.sys.uio.readv
-
- # sys/time.h entrypoints
- libc.src.sys.time.setitimer
- libc.src.sys.time.getitimer
-)
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # malloc.h external entrypoints
- libc.src.stdlib.mallopt
- )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.acospif16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.asinpif16
- libc.src.math.atanf16
- libc.src.math.atanhf16
- libc.src.math.atanpif16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.rsqrtf
- libc.src.math.rsqrtf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- libc.src.stdfix.idivr
- libc.src.stdfix.idivlr
- libc.src.stdfix.idivk
- libc.src.stdfix.idivlk
- libc.src.stdfix.idivur
- libc.src.stdfix.idivulr
- libc.src.stdfix.idivuk
- libc.src.stdfix.idivulk
- libc.src.stdfix.rdivi
- )
-endif()
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # dirent.h entrypoints
- libc.src.dirent.closedir
- libc.src.dirent.dirfd
- libc.src.dirent.opendir
- libc.src.dirent.readdir
-
- # arpa/inet.h entrypoints
- libc.src.arpa.inet.htonl
- libc.src.arpa.inet.htons
- libc.src.arpa.inet.inet_addr
- libc.src.arpa.inet.inet_aton
- libc.src.arpa.inet.ntohl
- libc.src.arpa.inet.ntohs
-
- # pthread.h entrypoints
- libc.src.pthread.pthread_atfork
- libc.src.pthread.pthread_attr_destroy
- libc.src.pthread.pthread_attr_getdetachstate
- libc.src.pthread.pthread_attr_getguardsize
- libc.src.pthread.pthread_attr_getstack
- libc.src.pthread.pthread_attr_getstacksize
- libc.src.pthread.pthread_attr_init
- libc.src.pthread.pthread_attr_setdetachstate
- libc.src.pthread.pthread_attr_setguardsize
- libc.src.pthread.pthread_attr_setstack
- libc.src.pthread.pthread_attr_setstacksize
- libc.src.pthread.pthread_condattr_destroy
- libc.src.pthread.pthread_condattr_getclock
- libc.src.pthread.pthread_condattr_getpshared
- libc.src.pthread.pthread_condattr_init
- libc.src.pthread.pthread_condattr_setclock
- libc.src.pthread.pthread_condattr_setpshared
- libc.src.pthread.pthread_create
- libc.src.pthread.pthread_detach
- libc.src.pthread.pthread_equal
- libc.src.pthread.pthread_exit
- libc.src.pthread.pthread_getname_np
- libc.src.pthread.pthread_getspecific
- libc.src.pthread.pthread_join
- libc.src.pthread.pthread_key_create
- libc.src.pthread.pthread_key_delete
- libc.src.pthread.pthread_barrier_init
- libc.src.pthread.pthread_barrier_wait
- libc.src.pthread.pthread_barrier_destroy
- libc.src.pthread.pthread_mutex_destroy
- libc.src.pthread.pthread_mutex_init
- libc.src.pthread.pthread_mutex_lock
- libc.src.pthread.pthread_mutex_unlock
- libc.src.pthread.pthread_mutexattr_destroy
- libc.src.pthread.pthread_mutexattr_getpshared
- libc.src.pthread.pthread_mutexattr_getrobust
- libc.src.pthread.pthread_mutexattr_gettype
- libc.src.pthread.pthread_mutexattr_init
- libc.src.pthread.pthread_mutexattr_setpshared
- libc.src.pthread.pthread_mutexattr_setrobust
- libc.src.pthread.pthread_mutexattr_settype
- libc.src.pthread.pthread_once
- libc.src.pthread.pthread_rwlock_clockrdlock
- libc.src.pthread.pthread_rwlock_clockwrlock
- libc.src.pthread.pthread_rwlock_destroy
- libc.src.pthread.pthread_rwlock_init
- libc.src.pthread.pthread_rwlock_rdlock
- libc.src.pthread.pthread_rwlock_timedrdlock
- libc.src.pthread.pthread_rwlock_timedwrlock
- libc.src.pthread.pthread_rwlock_tryrdlock
- libc.src.pthread.pthread_rwlock_trywrlock
- libc.src.pthread.pthread_rwlock_unlock
- libc.src.pthread.pthread_rwlock_wrlock
- libc.src.pthread.pthread_rwlockattr_destroy
- libc.src.pthread.pthread_rwlockattr_getkind_np
- libc.src.pthread.pthread_rwlockattr_getpshared
- libc.src.pthread.pthread_rwlockattr_init
- libc.src.pthread.pthread_rwlockattr_setkind_np
- libc.src.pthread.pthread_rwlockattr_setpshared
- libc.src.pthread.pthread_spin_destroy
- libc.src.pthread.pthread_spin_init
- libc.src.pthread.pthread_spin_lock
- libc.src.pthread.pthread_spin_trylock
- libc.src.pthread.pthread_spin_unlock
- libc.src.pthread.pthread_self
- libc.src.pthread.pthread_setname_np
- libc.src.pthread.pthread_setspecific
-
- # sched.h entrypoints
- libc.src.sched.__sched_getcpucount
- libc.src.sched.__sched_setcpuzero
- libc.src.sched.__sched_setcpuset
- libc.src.sched.__sched_getcpuisset
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.clearerr_unlocked
- libc.src.stdio.fclose
- libc.src.stdio.fdopen
- libc.src.stdio.feof
- libc.src.stdio.feof_unlocked
- libc.src.stdio.ferror
- libc.src.stdio.ferror_unlocked
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgetc_unlocked
- libc.src.stdio.fgets
- libc.src.stdio.fileno
- libc.src.stdio.flockfile
- libc.src.stdio.fopen
- libc.src.stdio.fopencookie
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fread_unlocked
- libc.src.stdio.fseek
- libc.src.stdio.fseeko
- libc.src.stdio.ftell
- libc.src.stdio.ftello
- libc.src.stdio.funlockfile
- libc.src.stdio.fwrite
- libc.src.stdio.fwrite_unlocked
- libc.src.stdio.getc
- libc.src.stdio.getc_unlocked
- libc.src.stdio.getchar
- libc.src.stdio.getchar_unlocked
- libc.src.stdio.perror
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.setbuf
- libc.src.stdio.setvbuf
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.atexit
- libc.src.stdlib.exit
- libc.src.stdlib.getenv
- libc.src.stdlib.mbstowcs
- libc.src.stdlib.mbtowc
- libc.src.stdlib.quick_exit
- libc.src.stdlib.wcstombs
- libc.src.stdlib.wctomb
-
- # signal.h entrypoints
- libc.src.signal.kill
- libc.src.signal.raise
- libc.src.signal.sigaction
- libc.src.signal.sigaddset
- libc.src.signal.sigaltstack
- libc.src.signal.sigdelset
- libc.src.signal.sigemptyset
- libc.src.signal.sigfillset
- libc.src.signal.signal
- libc.src.signal.sigprocmask
-
- # spawn.h entrypoints
- libc.src.spawn.posix_spawn
- libc.src.spawn.posix_spawn_file_actions_addclose
- libc.src.spawn.posix_spawn_file_actions_adddup2
- libc.src.spawn.posix_spawn_file_actions_addopen
- libc.src.spawn.posix_spawn_file_actions_destroy
- libc.src.spawn.posix_spawn_file_actions_init
-
- # search.h entrypoints
- libc.src.search.hcreate
- libc.src.search.hcreate_r
- libc.src.search.hdestroy
- libc.src.search.hdestroy_r
- libc.src.search.hsearch
- libc.src.search.hsearch_r
- libc.src.search.insque
- libc.src.search.lfind
- libc.src.search.lsearch
- libc.src.search.remque
-
- # threads.h entrypoints
- libc.src.threads.call_once
- libc.src.threads.cnd_broadcast
- libc.src.threads.cnd_destroy
- libc.src.threads.cnd_init
- libc.src.threads.cnd_signal
- libc.src.threads.cnd_wait
- libc.src.threads.mtx_destroy
- libc.src.threads.mtx_init
- libc.src.threads.mtx_lock
- libc.src.threads.mtx_unlock
- libc.src.threads.thrd_create
- libc.src.threads.thrd_current
- libc.src.threads.thrd_detach
- libc.src.threads.thrd_equal
- libc.src.threads.thrd_exit
- libc.src.threads.thrd_join
- libc.src.threads.tss_create
- libc.src.threads.tss_delete
- libc.src.threads.tss_get
- libc.src.threads.tss_set
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.clock_settime
- libc.src.time.difftime
- libc.src.time.gettimeofday
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.localtime
- libc.src.time.localtime_r
- libc.src.time.mktime
- libc.src.time.nanosleep
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.time
- libc.src.time.timespec_get
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # unistd.h entrypoints
- libc.src.unistd.__llvm_libc_syscall
- libc.src.unistd._exit
- libc.src.unistd.environ
- libc.src.unistd.execv
- libc.src.unistd.fork
- libc.src.unistd.getopt
- libc.src.unistd.optarg
- libc.src.unistd.opterr
- libc.src.unistd.optind
- libc.src.unistd.optopt
- libc.src.unistd.swab
-
- # sys/select.h entrypoints
- libc.src.sys.select.select
-
- # sys/socket.h entrypoints
- libc.src.sys.socket.socket
- libc.src.sys.socket.bind
- libc.src.sys.socket.socketpair
- libc.src.sys.socket.send
- libc.src.sys.socket.sendto
- libc.src.sys.socket.sendmsg
- libc.src.sys.socket.recv
- libc.src.sys.socket.recvfrom
- libc.src.sys.socket.recvmsg
-
- # wchar.h entrypoints
- libc.src.wchar.mblen
- libc.src.wchar.mbrlen
- libc.src.wchar.mbsinit
- libc.src.wchar.mbrtowc
- libc.src.wchar.mbsrtowcs
- libc.src.wchar.mbsnrtowcs
- libc.src.wchar.wcrtomb
- libc.src.wchar.wcsrtombs
- libc.src.wchar.wcsnrtombs
-
- # nl_types.h entrypoints
- libc.src.nl_types.catopen
- libc.src.nl_types.catclose
- libc.src.nl_types.catgets
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # dlfcn.h entrypoints
+ libc.src.dlfcn.dladdr
+ libc.src.dlfcn.dlclose
+ libc.src.dlfcn.dlerror
+ libc.src.dlfcn.dlopen
+ libc.src.dlfcn.dlsym
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # fcntl.h entrypoints
+ libc.src.fcntl.creat
+ libc.src.fcntl.fcntl
+ libc.src.fcntl.open
+ libc.src.fcntl.openat
+
+ # poll.h entrypoints
+ libc.src.poll.poll
+
+ # sched.h entrypoints
+ libc.src.sched.getcpu
+ libc.src.sched.sched_get_priority_max
+ libc.src.sched.sched_get_priority_min
+ libc.src.sched.sched_getaffinity
+ libc.src.sched.sched_getparam
+ libc.src.sched.sched_getscheduler
+ libc.src.sched.sched_rr_get_interval
+ libc.src.sched.sched_setaffinity
+ libc.src.sched.sched_setparam
+ libc.src.sched.sched_setscheduler
+ libc.src.sched.sched_yield
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strsignal
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abs
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strfromd
+ libc.src.stdlib.strfromf
+ libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # stdio.h entrypoints
+ libc.src.stdio.fprintf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.printf
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vasprintf
+
+ # sys/epoll.h entrypoints
+ libc.src.sys.epoll.epoll_create
+ libc.src.sys.epoll.epoll_create1
+ libc.src.sys.epoll.epoll_ctl
+ libc.src.sys.epoll.epoll_pwait
+ libc.src.sys.epoll.epoll_wait
+ # TODO: Need to check if pwait2 is available before providing.
+ # https://github.com/llvm/llvm-project/issues/80060
+ # libc.src.sys.epoll.epoll_pwait2
+
+ # sys/ioctl.h entrypoints
+ libc.src.sys.ioctl.ioctl
+
+ # sys/mman.h entrypoints
+ libc.src.sys.mman.madvise
+ libc.src.sys.mman.mincore
+ libc.src.sys.mman.mlock
+ libc.src.sys.mman.mlock2
+ libc.src.sys.mman.mlockall
+ libc.src.sys.mman.mmap
+ libc.src.sys.mman.mremap
+ libc.src.sys.mman.mprotect
+ libc.src.sys.mman.msync
+ libc.src.sys.mman.munlock
+ libc.src.sys.mman.munlockall
+ libc.src.sys.mman.munmap
+ libc.src.sys.mman.pkey_alloc
+ libc.src.sys.mman.pkey_free
+ libc.src.sys.mman.pkey_get
+ libc.src.sys.mman.pkey_mprotect
+ libc.src.sys.mman.pkey_set
+ libc.src.sys.mman.remap_file_pages
+ libc.src.sys.mman.posix_madvise
+ libc.src.sys.mman.shm_open
+ libc.src.sys.mman.shm_unlink
+
+ # sys/random.h entrypoints
+ libc.src.sys.random.getrandom
+
+ # sys/resource.h entrypoints
+ libc.src.sys.resource.getrlimit
+ libc.src.sys.resource.setrlimit
+
+ # sys/sendfile entrypoints
+ libc.src.sys.sendfile.sendfile
+
+ # sys/stat.h entrypoints
+ libc.src.sys.stat.chmod
+ libc.src.sys.stat.fchmod
+ libc.src.sys.stat.fchmodat
+ libc.src.sys.stat.fstat
+ libc.src.sys.stat.lstat
+ libc.src.sys.stat.mkdir
+ libc.src.sys.stat.mkdirat
+ libc.src.sys.stat.stat
+
+ # sys/statvfs.h
+ libc.src.sys.statvfs.fstatvfs
+ libc.src.sys.statvfs.statvfs
+
+ # sys/utimes.h entrypoints
+ libc.src.sys.time.utimes
+
+ # sys/utsname.h entrypoints
+ libc.src.sys.utsname.uname
+
+ # sys/wait.h entrypoints
+ libc.src.sys.wait.wait
+ libc.src.sys.wait.wait4
+ libc.src.sys.wait.waitpid
+
+ # sys/prctl.h entrypoints
+ libc.src.sys.prctl.prctl
+
+ # sys/auxv.h entrypoints
+ libc.src.sys.auxv.getauxval
+
+ # termios.h entrypoints
+ libc.src.termios.cfgetispeed
+ libc.src.termios.cfgetospeed
+ libc.src.termios.cfsetispeed
+ libc.src.termios.cfsetospeed
+ libc.src.termios.tcdrain
+ libc.src.termios.tcflow
+ libc.src.termios.tcflush
+ libc.src.termios.tcgetattr
+ libc.src.termios.tcgetsid
+ libc.src.termios.tcsendbreak
+ libc.src.termios.tcsetattr
+
+ # unistd.h entrypoints
+ libc.src.unistd.access
+ libc.src.unistd.chdir
+ libc.src.unistd.chown
+ libc.src.unistd.close
+ libc.src.unistd.dup
+ libc.src.unistd.dup2
+ libc.src.unistd.dup3
+ libc.src.unistd.execve
+ libc.src.unistd.faccessat
+ libc.src.unistd.fchdir
+ libc.src.unistd.fchown
+ libc.src.unistd.fpathconf
+ libc.src.unistd.fsync
+ libc.src.unistd.ftruncate
+ libc.src.unistd.getcwd
+ libc.src.unistd.getentropy
+ libc.src.unistd.geteuid
+ libc.src.unistd.gethostname
+ libc.src.unistd.getpagesize
+ libc.src.unistd.getpid
+ libc.src.unistd.getppid
+ libc.src.unistd.getsid
+ libc.src.unistd.gettid
+ libc.src.unistd.getgid
+ libc.src.unistd.getuid
+ libc.src.unistd.isatty
+ libc.src.unistd.link
+ libc.src.unistd.linkat
+ libc.src.unistd.lseek
+ libc.src.unistd.pathconf
+ libc.src.unistd.pipe
+ libc.src.unistd.pipe2
+ libc.src.unistd.pread
+ libc.src.unistd.pwrite
+ libc.src.unistd.read
+ libc.src.unistd.readlink
+ libc.src.unistd.readlinkat
+ libc.src.unistd.rmdir
+ libc.src.unistd.setsid
+ libc.src.unistd.symlink
+ libc.src.unistd.symlinkat
+ libc.src.unistd.sysconf
+ libc.src.unistd.truncate
+ libc.src.unistd.unlink
+ libc.src.unistd.unlinkat
+ libc.src.unistd.write
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wcsnlen
+ libc.src.wchar.wctob
+ libc.src.wchar.wmemmove
+ libc.src.wchar.wmemset
+ libc.src.wchar.wcschr
+ libc.src.wchar.wcsncmp
+ libc.src.wchar.wcscmp
+ libc.src.wchar.wcspbrk
+ libc.src.wchar.wcsrchr
+ libc.src.wchar.wcsspn
+ libc.src.wchar.wcscspn
+ libc.src.wchar.wcsdup
+ libc.src.wchar.wmemcmp
+ libc.src.wchar.wmempcpy
+ libc.src.wchar.wmemcpy
+ libc.src.wchar.wcsncpy
+ libc.src.wchar.wcscat
+ libc.src.wchar.wcsstr
+ libc.src.wchar.wcsncat
+ libc.src.wchar.wcslcat
+ libc.src.wchar.wcscpy
+ libc.src.wchar.wcslcpy
+ libc.src.wchar.wmemchr
+ libc.src.wchar.wcpcpy
+ libc.src.wchar.wcpncpy
+ libc.src.wchar.wcstod
+ libc.src.wchar.wcstof
+ libc.src.wchar.wcstok
+ libc.src.wchar.wcstol
+ libc.src.wchar.wcstold
+ libc.src.wchar.wcstoll
+ libc.src.wchar.wcstoul
+ libc.src.wchar.wcstoull
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # sys/uio.h entrypoints
+ libc.src.sys.uio.writev
+ libc.src.sys.uio.readv
+
+ # sys/time.h entrypoints
+ libc.src.sys.time.setitimer
+ libc.src.sys.time.getitimer
+)
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # malloc.h external entrypoints
+ libc.src.stdlib.mallopt
+ )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.acospif16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.asinpif16
+ libc.src.math.atanf16
+ libc.src.math.atanhf16
+ libc.src.math.atanpif16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.rsqrtf
+ libc.src.math.rsqrtf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ libc.src.stdfix.idivr
+ libc.src.stdfix.idivlr
+ libc.src.stdfix.idivk
+ libc.src.stdfix.idivlk
+ libc.src.stdfix.idivur
+ libc.src.stdfix.idivulr
+ libc.src.stdfix.idivuk
+ libc.src.stdfix.idivulk
+ libc.src.stdfix.rdivi
+ )
+endif()
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # dirent.h entrypoints
+ libc.src.dirent.closedir
+ libc.src.dirent.dirfd
+ libc.src.dirent.opendir
+ libc.src.dirent.readdir
+
+ # arpa/inet.h entrypoints
+ libc.src.arpa.inet.htonl
+ libc.src.arpa.inet.htons
+ libc.src.arpa.inet.inet_addr
+ libc.src.arpa.inet.inet_aton
+ libc.src.arpa.inet.ntohl
+ libc.src.arpa.inet.ntohs
+
+ # pthread.h entrypoints
+ libc.src.pthread.pthread_atfork
+ libc.src.pthread.pthread_attr_destroy
+ libc.src.pthread.pthread_attr_getdetachstate
+ libc.src.pthread.pthread_attr_getguardsize
+ libc.src.pthread.pthread_attr_getstack
+ libc.src.pthread.pthread_attr_getstacksize
+ libc.src.pthread.pthread_attr_init
+ libc.src.pthread.pthread_attr_setdetachstate
+ libc.src.pthread.pthread_attr_setguardsize
+ libc.src.pthread.pthread_attr_setstack
+ libc.src.pthread.pthread_attr_setstacksize
+ libc.src.pthread.pthread_condattr_destroy
+ libc.src.pthread.pthread_condattr_getclock
+ libc.src.pthread.pthread_condattr_getpshared
+ libc.src.pthread.pthread_condattr_init
+ libc.src.pthread.pthread_condattr_setclock
+ libc.src.pthread.pthread_condattr_setpshared
+ libc.src.pthread.pthread_create
+ libc.src.pthread.pthread_detach
+ libc.src.pthread.pthread_equal
+ libc.src.pthread.pthread_exit
+ libc.src.pthread.pthread_getname_np
+ libc.src.pthread.pthread_getspecific
+ libc.src.pthread.pthread_join
+ libc.src.pthread.pthread_key_create
+ libc.src.pthread.pthread_key_delete
+ libc.src.pthread.pthread_barrier_init
+ libc.src.pthread.pthread_barrier_wait
+ libc.src.pthread.pthread_barrier_destroy
+ libc.src.pthread.pthread_mutex_destroy
+ libc.src.pthread.pthread_mutex_init
+ libc.src.pthread.pthread_mutex_lock
+ libc.src.pthread.pthread_mutex_unlock
+ libc.src.pthread.pthread_mutexattr_destroy
+ libc.src.pthread.pthread_mutexattr_getpshared
+ libc.src.pthread.pthread_mutexattr_getrobust
+ libc.src.pthread.pthread_mutexattr_gettype
+ libc.src.pthread.pthread_mutexattr_init
+ libc.src.pthread.pthread_mutexattr_setpshared
+ libc.src.pthread.pthread_mutexattr_setrobust
+ libc.src.pthread.pthread_mutexattr_settype
+ libc.src.pthread.pthread_once
+ libc.src.pthread.pthread_rwlock_clockrdlock
+ libc.src.pthread.pthread_rwlock_clockwrlock
+ libc.src.pthread.pthread_rwlock_destroy
+ libc.src.pthread.pthread_rwlock_init
+ libc.src.pthread.pthread_rwlock_rdlock
+ libc.src.pthread.pthread_rwlock_timedrdlock
+ libc.src.pthread.pthread_rwlock_timedwrlock
+ libc.src.pthread.pthread_rwlock_tryrdlock
+ libc.src.pthread.pthread_rwlock_trywrlock
+ libc.src.pthread.pthread_rwlock_unlock
+ libc.src.pthread.pthread_rwlock_wrlock
+ libc.src.pthread.pthread_rwlockattr_destroy
+ libc.src.pthread.pthread_rwlockattr_getkind_np
+ libc.src.pthread.pthread_rwlockattr_getpshared
+ libc.src.pthread.pthread_rwlockattr_init
+ libc.src.pthread.pthread_rwlockattr_setkind_np
+ libc.src.pthread.pthread_rwlockattr_setpshared
+ libc.src.pthread.pthread_spin_destroy
+ libc.src.pthread.pthread_spin_init
+ libc.src.pthread.pthread_spin_lock
+ libc.src.pthread.pthread_spin_trylock
+ libc.src.pthread.pthread_spin_unlock
+ libc.src.pthread.pthread_self
+ libc.src.pthread.pthread_setname_np
+ libc.src.pthread.pthread_setspecific
+
+ # sched.h entrypoints
+ libc.src.sched.__sched_getcpucount
+ libc.src.sched.__sched_setcpuzero
+ libc.src.sched.__sched_setcpuset
+ libc.src.sched.__sched_getcpuisset
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.clearerr_unlocked
+ libc.src.stdio.fclose
+ libc.src.stdio.fdopen
+ libc.src.stdio.feof
+ libc.src.stdio.feof_unlocked
+ libc.src.stdio.ferror
+ libc.src.stdio.ferror_unlocked
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgetc_unlocked
+ libc.src.stdio.fgets
+ libc.src.stdio.fileno
+ libc.src.stdio.flockfile
+ libc.src.stdio.fopen
+ libc.src.stdio.fopencookie
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fread_unlocked
+ libc.src.stdio.fseek
+ libc.src.stdio.fseeko
+ libc.src.stdio.ftell
+ libc.src.stdio.ftello
+ libc.src.stdio.funlockfile
+ libc.src.stdio.fwrite
+ libc.src.stdio.fwrite_unlocked
+ libc.src.stdio.getc
+ libc.src.stdio.getc_unlocked
+ libc.src.stdio.getchar
+ libc.src.stdio.getchar_unlocked
+ libc.src.stdio.perror
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.setbuf
+ libc.src.stdio.setvbuf
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.atexit
+ libc.src.stdlib.exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.mbstowcs
+ libc.src.stdlib.mbtowc
+ libc.src.stdlib.quick_exit
+ libc.src.stdlib.wcstombs
+ libc.src.stdlib.wctomb
+
+ # signal.h entrypoints
+ libc.src.signal.kill
+ libc.src.signal.raise
+ libc.src.signal.sigaction
+ libc.src.signal.sigaddset
+ libc.src.signal.sigaltstack
+ libc.src.signal.sigdelset
+ libc.src.signal.sigemptyset
+ libc.src.signal.sigfillset
+ libc.src.signal.signal
+ libc.src.signal.sigprocmask
+
+ # spawn.h entrypoints
+ libc.src.spawn.posix_spawn
+ libc.src.spawn.posix_spawn_file_actions_addclose
+ libc.src.spawn.posix_spawn_file_actions_adddup2
+ libc.src.spawn.posix_spawn_file_actions_addopen
+ libc.src.spawn.posix_spawn_file_actions_destroy
+ libc.src.spawn.posix_spawn_file_actions_init
+
+ # search.h entrypoints
+ libc.src.search.hcreate
+ libc.src.search.hcreate_r
+ libc.src.search.hdestroy
+ libc.src.search.hdestroy_r
+ libc.src.search.hsearch
+ libc.src.search.hsearch_r
+ libc.src.search.insque
+ libc.src.search.lfind
+ libc.src.search.lsearch
+ libc.src.search.remque
+
+ # threads.h entrypoints
+ libc.src.threads.call_once
+ libc.src.threads.cnd_broadcast
+ libc.src.threads.cnd_destroy
+ libc.src.threads.cnd_init
+ libc.src.threads.cnd_signal
+ libc.src.threads.cnd_wait
+ libc.src.threads.mtx_destroy
+ libc.src.threads.mtx_init
+ libc.src.threads.mtx_lock
+ libc.src.threads.mtx_unlock
+ libc.src.threads.thrd_create
+ libc.src.threads.thrd_current
+ libc.src.threads.thrd_detach
+ libc.src.threads.thrd_equal
+ libc.src.threads.thrd_exit
+ libc.src.threads.thrd_join
+ libc.src.threads.tss_create
+ libc.src.threads.tss_delete
+ libc.src.threads.tss_get
+ libc.src.threads.tss_set
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.clock_settime
+ libc.src.time.difftime
+ libc.src.time.gettimeofday
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.localtime
+ libc.src.time.localtime_r
+ libc.src.time.mktime
+ libc.src.time.nanosleep
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.time
+ libc.src.time.timespec_get
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # unistd.h entrypoints
+ libc.src.unistd.__llvm_libc_syscall
+ libc.src.unistd._exit
+ libc.src.unistd.environ
+ libc.src.unistd.execv
+ libc.src.unistd.fork
+ libc.src.unistd.getopt
+ libc.src.unistd.optarg
+ libc.src.unistd.opterr
+ libc.src.unistd.optind
+ libc.src.unistd.optopt
+ libc.src.unistd.swab
+
+ # sys/select.h entrypoints
+ libc.src.sys.select.select
+
+ # sys/socket.h entrypoints
+ libc.src.sys.socket.socket
+ libc.src.sys.socket.bind
+ libc.src.sys.socket.socketpair
+ libc.src.sys.socket.send
+ libc.src.sys.socket.sendto
+ libc.src.sys.socket.sendmsg
+ libc.src.sys.socket.recv
+ libc.src.sys.socket.recvfrom
+ libc.src.sys.socket.recvmsg
+
+ # wchar.h entrypoints
+ libc.src.wchar.mblen
+ libc.src.wchar.mbrlen
+ libc.src.wchar.mbsinit
+ libc.src.wchar.mbrtowc
+ libc.src.wchar.mbsrtowcs
+ libc.src.wchar.mbsnrtowcs
+ libc.src.wchar.wcrtomb
+ libc.src.wchar.wcsrtombs
+ libc.src.wchar.wcsnrtombs
+
+ # nl_types.h entrypoints
+ libc.src.nl_types.catopen
+ libc.src.nl_types.catclose
+ libc.src.nl_types.catgets
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt
index 3a76595b258e2..847e22889303a 100644
--- a/libc/config/windows/entrypoints.txt
+++ b/libc/config/windows/entrypoints.txt
@@ -1,384 +1,385 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
-
- # string.h entrypoints that depend on malloc
- libc.src.string.strdup
- libc.src.string.strndup
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atoi
- libc.src.stdlib.atof
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.malloc
- libc.src.stdlib.calloc
- libc.src.stdlib.realloc
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.free
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # time.h entrypoints
- libc.src.time.time
- libc.src.time.clock_getres
-
- # unistd.h entrypoints
- libc.src.unistd.getentropy
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.expf
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmaf
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminl
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaxl
- libc.src.math.fmaximum
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fminimum
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fmul
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.log
- libc.src.math.logf
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainderf
- libc.src.math.remainder
- libc.src.math.remainderl
- libc.src.math.remquof
- libc.src.math.remquo
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.sin
- libc.src.math.sincosf
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
-
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+
+ # string.h entrypoints that depend on malloc
+ libc.src.string.strdup
+ libc.src.string.strndup
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atof
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.malloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.realloc
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.free
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # time.h entrypoints
+ libc.src.time.time
+ libc.src.time.clock_getres
+
+ # unistd.h entrypoints
+ libc.src.unistd.getentropy
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.expf
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminl
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaxl
+ libc.src.math.fmaximum
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fminimum
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fmul
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.log
+ libc.src.math.logf
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainderf
+ libc.src.math.remainder
+ libc.src.math.remainderl
+ libc.src.math.remquof
+ libc.src.math.remquo
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.sin
+ libc.src.math.sincosf
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
+
diff --git a/libc/src/math/CMakeLists.txt b/libc/src/math/CMakeLists.txt
index e37e22fdb58e6..d0db5cf8d0f74 100644
--- a/libc/src/math/CMakeLists.txt
+++ b/libc/src/math/CMakeLists.txt
@@ -1,645 +1,646 @@
-add_subdirectory(generic)
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_ARCHITECTURE})
- add_subdirectory(${LIBC_TARGET_ARCHITECTURE})
-endif()
-
-function(add_math_entrypoint_object name)
- # We prefer machine specific implementation if available. Hence we check
- # that first and return early if we are able to add an alias target for the
- # machine specific implementation.
- get_fq_target_name("${LIBC_TARGET_ARCHITECTURE}.${name}" fq_machine_specific_target_name)
- if(TARGET ${fq_machine_specific_target_name})
- add_entrypoint_object(
- ${name}
- ALIAS
- DEPENDS
- .${LIBC_TARGET_ARCHITECTURE}.${name}
- )
- return()
- endif()
-
- get_fq_target_name("generic.${name}" fq_generic_target_name)
- if(TARGET ${fq_generic_target_name})
- add_entrypoint_object(
- ${name}
- ALIAS
- DEPENDS
- .generic.${name}
- )
- return()
- endif()
-
- # Add a dummy entrypoint object for missing implementations. They will be skipped
- # anyway as there will be no entry for them in the target entrypoints list.
- add_entrypoint_object(
- ${name}
- SRCS
- dummy_srcs
- HDRS
- dummy_hdrs
- )
-endfunction()
-
-add_math_entrypoint_object(acos)
-add_math_entrypoint_object(acosf)
-add_math_entrypoint_object(acosf16)
-
-add_math_entrypoint_object(acosh)
-add_math_entrypoint_object(acoshf)
-add_math_entrypoint_object(acoshf16)
-
-add_math_entrypoint_object(acospif16)
-
-add_math_entrypoint_object(asin)
-add_math_entrypoint_object(asinf)
-add_math_entrypoint_object(asinf16)
-
-add_math_entrypoint_object(asinh)
-add_math_entrypoint_object(asinhf)
-add_math_entrypoint_object(asinhf16)
-
-add_math_entrypoint_object(asinpif16)
-
-add_math_entrypoint_object(atan)
-add_math_entrypoint_object(atanf)
-add_math_entrypoint_object(atanf16)
-
-add_math_entrypoint_object(atan2)
-add_math_entrypoint_object(atan2f)
-add_math_entrypoint_object(atan2l)
-add_math_entrypoint_object(atan2f128)
-
-add_math_entrypoint_object(atanh)
-add_math_entrypoint_object(atanhf)
-add_math_entrypoint_object(atanhf16)
-
-add_math_entrypoint_object(atanpif16)
-
-add_math_entrypoint_object(canonicalize)
-add_math_entrypoint_object(canonicalizef)
-add_math_entrypoint_object(canonicalizel)
-add_math_entrypoint_object(canonicalizef16)
-add_math_entrypoint_object(canonicalizef128)
-add_math_entrypoint_object(canonicalizebf16)
-
-add_math_entrypoint_object(iscanonical)
-add_math_entrypoint_object(iscanonicalf)
-add_math_entrypoint_object(iscanonicall)
-add_math_entrypoint_object(iscanonicalf16)
-add_math_entrypoint_object(iscanonicalf128)
-add_math_entrypoint_object(iscanonicalbf16)
-
-add_math_entrypoint_object(cbrt)
-add_math_entrypoint_object(cbrtf)
-
-add_math_entrypoint_object(ceil)
-add_math_entrypoint_object(ceilf)
-add_math_entrypoint_object(ceill)
-add_math_entrypoint_object(ceilf16)
-add_math_entrypoint_object(ceilf128)
-add_math_entrypoint_object(ceilbf16)
-
-add_math_entrypoint_object(copysign)
-add_math_entrypoint_object(copysignf)
-add_math_entrypoint_object(copysignl)
-add_math_entrypoint_object(copysignf16)
-add_math_entrypoint_object(copysignf128)
-add_math_entrypoint_object(copysignbf16)
-
-add_math_entrypoint_object(cos)
-add_math_entrypoint_object(cosf)
-add_math_entrypoint_object(cosf16)
-
-add_math_entrypoint_object(cosh)
-add_math_entrypoint_object(coshf)
-add_math_entrypoint_object(coshf16)
-
-add_math_entrypoint_object(cospif)
-add_math_entrypoint_object(cospif16)
-
-add_math_entrypoint_object(daddl)
-add_math_entrypoint_object(daddf128)
-add_math_entrypoint_object(ddivl)
-add_math_entrypoint_object(ddivf128)
-add_math_entrypoint_object(dmull)
-add_math_entrypoint_object(dmulf128)
-
-add_math_entrypoint_object(dfmal)
-add_math_entrypoint_object(dfmaf128)
-
-add_math_entrypoint_object(dsqrtl)
-add_math_entrypoint_object(dsqrtf128)
-
-add_math_entrypoint_object(dsubl)
-add_math_entrypoint_object(dsubf128)
-
-add_math_entrypoint_object(erf)
-add_math_entrypoint_object(erff)
-
-add_math_entrypoint_object(exp)
-add_math_entrypoint_object(expf)
-add_math_entrypoint_object(expf16)
-
-add_math_entrypoint_object(exp2)
-add_math_entrypoint_object(exp2f)
-add_math_entrypoint_object(exp2f16)
-
-add_math_entrypoint_object(exp2m1f)
-add_math_entrypoint_object(exp2m1f16)
-
-add_math_entrypoint_object(exp10)
-add_math_entrypoint_object(exp10f)
-add_math_entrypoint_object(exp10f16)
-
-add_math_entrypoint_object(exp10m1f)
-add_math_entrypoint_object(exp10m1f16)
-
-add_math_entrypoint_object(expm1)
-add_math_entrypoint_object(expm1f)
-add_math_entrypoint_object(expm1f16)
-
-add_math_entrypoint_object(f16add)
-add_math_entrypoint_object(f16addf)
-add_math_entrypoint_object(f16addl)
-add_math_entrypoint_object(f16addf128)
-
-add_math_entrypoint_object(f16div)
-add_math_entrypoint_object(f16divf)
-add_math_entrypoint_object(f16divl)
-add_math_entrypoint_object(f16divf128)
-
-add_math_entrypoint_object(f16fma)
-add_math_entrypoint_object(f16fmaf)
-add_math_entrypoint_object(f16fmal)
-add_math_entrypoint_object(f16fmaf128)
-
-add_math_entrypoint_object(f16mul)
-add_math_entrypoint_object(f16mulf)
-add_math_entrypoint_object(f16mull)
-add_math_entrypoint_object(f16mulf128)
-
-add_math_entrypoint_object(f16sqrt)
-add_math_entrypoint_object(f16sqrtf)
-add_math_entrypoint_object(f16sqrtl)
-add_math_entrypoint_object(f16sqrtf128)
-
-add_math_entrypoint_object(fsqrt)
-add_math_entrypoint_object(fsqrtl)
-add_math_entrypoint_object(fsqrtf128)
-
-add_math_entrypoint_object(f16sub)
-add_math_entrypoint_object(f16subf)
-add_math_entrypoint_object(f16subl)
-add_math_entrypoint_object(f16subf128)
-
-add_math_entrypoint_object(fabs)
-add_math_entrypoint_object(fabsf)
-add_math_entrypoint_object(fabsl)
-add_math_entrypoint_object(fabsf16)
-add_math_entrypoint_object(fabsf128)
-add_math_entrypoint_object(fabsbf16)
-
-add_math_entrypoint_object(fadd)
-add_math_entrypoint_object(faddl)
-add_math_entrypoint_object(faddf128)
-
-add_math_entrypoint_object(fdim)
-add_math_entrypoint_object(fdimf)
-add_math_entrypoint_object(fdiml)
-add_math_entrypoint_object(fdimf16)
-add_math_entrypoint_object(fdimf128)
-add_math_entrypoint_object(fdimbf16)
-
-add_math_entrypoint_object(fdiv)
-add_math_entrypoint_object(fdivl)
-add_math_entrypoint_object(fdivf128)
-
-add_math_entrypoint_object(ffma)
-add_math_entrypoint_object(ffmal)
-add_math_entrypoint_object(ffmaf128)
-
-add_math_entrypoint_object(floor)
-add_math_entrypoint_object(floorf)
-add_math_entrypoint_object(floorl)
-add_math_entrypoint_object(floorf16)
-add_math_entrypoint_object(floorf128)
-add_math_entrypoint_object(floorbf16)
-
-add_math_entrypoint_object(fma)
-add_math_entrypoint_object(fmaf)
-add_math_entrypoint_object(fmaf16)
-
-add_math_entrypoint_object(fmax)
-add_math_entrypoint_object(fmaxf)
-add_math_entrypoint_object(fmaxl)
-add_math_entrypoint_object(fmaxf128)
-add_math_entrypoint_object(fmaxf16)
-add_math_entrypoint_object(fmaxbf16)
-
-add_math_entrypoint_object(fmin)
-add_math_entrypoint_object(fminf)
-add_math_entrypoint_object(fminl)
-add_math_entrypoint_object(fminf128)
-add_math_entrypoint_object(fminf16)
-add_math_entrypoint_object(fminbf16)
-
-add_math_entrypoint_object(fmaximum)
-add_math_entrypoint_object(fmaximumf)
-add_math_entrypoint_object(fmaximuml)
-add_math_entrypoint_object(fmaximumf16)
-add_math_entrypoint_object(fmaximumf128)
-add_math_entrypoint_object(fmaximumbf16)
-
-add_math_entrypoint_object(fmaximum_num)
-add_math_entrypoint_object(fmaximum_numf)
-add_math_entrypoint_object(fmaximum_numl)
-add_math_entrypoint_object(fmaximum_numf16)
-add_math_entrypoint_object(fmaximum_numf128)
-add_math_entrypoint_object(fmaximum_numbf16)
-
-add_math_entrypoint_object(fmaximum_mag)
-add_math_entrypoint_object(fmaximum_magf)
-add_math_entrypoint_object(fmaximum_magl)
-add_math_entrypoint_object(fmaximum_magf16)
-add_math_entrypoint_object(fmaximum_magf128)
-add_math_entrypoint_object(fmaximum_magbf16)
-
-add_math_entrypoint_object(fmaximum_mag_num)
-add_math_entrypoint_object(fmaximum_mag_numf)
-add_math_entrypoint_object(fmaximum_mag_numl)
-add_math_entrypoint_object(fmaximum_mag_numf16)
-add_math_entrypoint_object(fmaximum_mag_numf128)
-add_math_entrypoint_object(fmaximum_mag_numbf16)
-
-add_math_entrypoint_object(fminimum)
-add_math_entrypoint_object(fminimumf)
-add_math_entrypoint_object(fminimuml)
-add_math_entrypoint_object(fminimumf16)
-add_math_entrypoint_object(fminimumf128)
-add_math_entrypoint_object(fminimumbf16)
-
-add_math_entrypoint_object(fminimum_num)
-add_math_entrypoint_object(fminimum_numf)
-add_math_entrypoint_object(fminimum_numl)
-add_math_entrypoint_object(fminimum_numf16)
-add_math_entrypoint_object(fminimum_numf128)
-add_math_entrypoint_object(fminimum_numbf16)
-
-add_math_entrypoint_object(fminimum_mag)
-add_math_entrypoint_object(fminimum_magf)
-add_math_entrypoint_object(fminimum_magl)
-add_math_entrypoint_object(fminimum_magf16)
-add_math_entrypoint_object(fminimum_magf128)
-add_math_entrypoint_object(fminimum_magbf16)
-
-add_math_entrypoint_object(fminimum_mag_num)
-add_math_entrypoint_object(fminimum_mag_numf)
-add_math_entrypoint_object(fminimum_mag_numl)
-add_math_entrypoint_object(fminimum_mag_numf16)
-add_math_entrypoint_object(fminimum_mag_numf128)
-add_math_entrypoint_object(fminimum_mag_numbf16)
-
-add_math_entrypoint_object(fmul)
-add_math_entrypoint_object(fmull)
-add_math_entrypoint_object(fmulf128)
-
-add_math_entrypoint_object(fmod)
-add_math_entrypoint_object(fmodf)
-add_math_entrypoint_object(fmodl)
-add_math_entrypoint_object(fmodf16)
-add_math_entrypoint_object(fmodf128)
-add_math_entrypoint_object(fmodbf16)
-
-add_math_entrypoint_object(frexp)
-add_math_entrypoint_object(frexpf)
-add_math_entrypoint_object(frexpl)
-add_math_entrypoint_object(frexpf16)
-add_math_entrypoint_object(frexpf128)
-add_math_entrypoint_object(frexpbf16)
-
-add_math_entrypoint_object(fromfp)
-add_math_entrypoint_object(fromfpf)
-add_math_entrypoint_object(fromfpl)
-add_math_entrypoint_object(fromfpf16)
-add_math_entrypoint_object(fromfpf128)
-add_math_entrypoint_object(fromfpbf16)
-
-add_math_entrypoint_object(fromfpx)
-add_math_entrypoint_object(fromfpxf)
-add_math_entrypoint_object(fromfpxl)
-add_math_entrypoint_object(fromfpxf16)
-add_math_entrypoint_object(fromfpxf128)
-add_math_entrypoint_object(fromfpxbf16)
-
-add_math_entrypoint_object(fsub)
-add_math_entrypoint_object(fsubl)
-add_math_entrypoint_object(fsubf128)
-
-add_math_entrypoint_object(getpayload)
-add_math_entrypoint_object(getpayloadf)
-add_math_entrypoint_object(getpayloadl)
-add_math_entrypoint_object(getpayloadf16)
-add_math_entrypoint_object(getpayloadf128)
-add_math_entrypoint_object(getpayloadbf16)
-
-add_math_entrypoint_object(hypot)
-add_math_entrypoint_object(hypotf)
-add_math_entrypoint_object(hypotf16)
-
-add_math_entrypoint_object(ilogb)
-add_math_entrypoint_object(ilogbf)
-add_math_entrypoint_object(ilogbl)
-add_math_entrypoint_object(ilogbf16)
-add_math_entrypoint_object(ilogbf128)
-add_math_entrypoint_object(ilogbbf16)
-
-add_math_entrypoint_object(isnan)
-add_math_entrypoint_object(isnanf)
-add_math_entrypoint_object(isnanl)
-
-add_math_entrypoint_object(issignaling)
-add_math_entrypoint_object(issignalingf)
-add_math_entrypoint_object(issignalingl)
-add_math_entrypoint_object(issignalingf16)
-add_math_entrypoint_object(issignalingf128)
-add_math_entrypoint_object(issignalingbf16)
-
-add_math_entrypoint_object(llogb)
-add_math_entrypoint_object(llogbf)
-add_math_entrypoint_object(llogbl)
-add_math_entrypoint_object(llogbf16)
-add_math_entrypoint_object(llogbf128)
-add_math_entrypoint_object(llogbbf16)
-
-add_math_entrypoint_object(ldexp)
-add_math_entrypoint_object(ldexpf)
-add_math_entrypoint_object(ldexpl)
-add_math_entrypoint_object(ldexpf16)
-add_math_entrypoint_object(ldexpf128)
-add_math_entrypoint_object(ldexpbf16)
-
-add_math_entrypoint_object(log10)
-add_math_entrypoint_object(log10f)
-add_math_entrypoint_object(log10f16)
-
-add_math_entrypoint_object(log1p)
-add_math_entrypoint_object(log1pf)
-
-add_math_entrypoint_object(log2)
-add_math_entrypoint_object(log2f)
-add_math_entrypoint_object(log2f16)
-
-add_math_entrypoint_object(log)
-add_math_entrypoint_object(logf)
-add_math_entrypoint_object(logf16)
-add_math_entrypoint_object(log_bf16)
-
-add_math_entrypoint_object(logb)
-add_math_entrypoint_object(logbf)
-add_math_entrypoint_object(logbl)
-add_math_entrypoint_object(logbf16)
-add_math_entrypoint_object(logbf128)
-add_math_entrypoint_object(logbbf16)
-
-add_math_entrypoint_object(llrint)
-add_math_entrypoint_object(llrintf)
-add_math_entrypoint_object(llrintl)
-add_math_entrypoint_object(llrintf16)
-add_math_entrypoint_object(llrintf128)
-add_math_entrypoint_object(llrintbf16)
-
-add_math_entrypoint_object(llround)
-add_math_entrypoint_object(llroundf)
-add_math_entrypoint_object(llroundl)
-add_math_entrypoint_object(llroundf16)
-add_math_entrypoint_object(llroundf128)
-add_math_entrypoint_object(llroundbf16)
-
-add_math_entrypoint_object(lrint)
-add_math_entrypoint_object(lrintf)
-add_math_entrypoint_object(lrintl)
-add_math_entrypoint_object(lrintf16)
-add_math_entrypoint_object(lrintf128)
-add_math_entrypoint_object(lrintbf16)
-
-add_math_entrypoint_object(lround)
-add_math_entrypoint_object(lroundf)
-add_math_entrypoint_object(lroundl)
-add_math_entrypoint_object(lroundf16)
-add_math_entrypoint_object(lroundf128)
-add_math_entrypoint_object(lroundbf16)
-
-add_math_entrypoint_object(modf)
-add_math_entrypoint_object(modff)
-add_math_entrypoint_object(modfl)
-add_math_entrypoint_object(modff16)
-add_math_entrypoint_object(modff128)
-add_math_entrypoint_object(modfbf16)
-
-add_math_entrypoint_object(nan)
-add_math_entrypoint_object(nanf)
-add_math_entrypoint_object(nanl)
-add_math_entrypoint_object(nanf16)
-add_math_entrypoint_object(nanf128)
-add_math_entrypoint_object(nanbf16)
-
-add_math_entrypoint_object(nearbyint)
-add_math_entrypoint_object(nearbyintf)
-add_math_entrypoint_object(nearbyintl)
-add_math_entrypoint_object(nearbyintf16)
-add_math_entrypoint_object(nearbyintf128)
-add_math_entrypoint_object(nearbyintbf16)
-
-add_math_entrypoint_object(nextafter)
-add_math_entrypoint_object(nextafterf)
-add_math_entrypoint_object(nextafterl)
-add_math_entrypoint_object(nextafterf16)
-add_math_entrypoint_object(nextafterf128)
-add_math_entrypoint_object(nextafterbf16)
-
-add_math_entrypoint_object(nexttoward)
-add_math_entrypoint_object(nexttowardf)
-add_math_entrypoint_object(nexttowardl)
-add_math_entrypoint_object(nexttowardf16)
-add_math_entrypoint_object(nexttowardbf16)
-
-add_math_entrypoint_object(nextdown)
-add_math_entrypoint_object(nextdownf)
-add_math_entrypoint_object(nextdownl)
-add_math_entrypoint_object(nextdownf16)
-add_math_entrypoint_object(nextdownf128)
-add_math_entrypoint_object(nextdownbf16)
-
-add_math_entrypoint_object(nextup)
-add_math_entrypoint_object(nextupf)
-add_math_entrypoint_object(nextupl)
-add_math_entrypoint_object(nextupf16)
-add_math_entrypoint_object(nextupf128)
-add_math_entrypoint_object(nextupbf16)
-
-add_math_entrypoint_object(pow)
-add_math_entrypoint_object(powf)
-add_math_entrypoint_object(powi)
-add_math_entrypoint_object(powif)
-
-add_math_entrypoint_object(remainder)
-add_math_entrypoint_object(remainderf)
-add_math_entrypoint_object(remainderl)
-add_math_entrypoint_object(remainderf16)
-add_math_entrypoint_object(remainderf128)
-add_math_entrypoint_object(remainderbf16)
-
-add_math_entrypoint_object(remquo)
-add_math_entrypoint_object(remquof)
-add_math_entrypoint_object(remquol)
-add_math_entrypoint_object(remquof16)
-add_math_entrypoint_object(remquof128)
-add_math_entrypoint_object(remquobf16)
-
-add_math_entrypoint_object(rint)
-add_math_entrypoint_object(rintf)
-add_math_entrypoint_object(rintl)
-add_math_entrypoint_object(rintf16)
-add_math_entrypoint_object(rintf128)
-add_math_entrypoint_object(rintbf16)
-
-add_math_entrypoint_object(round)
-add_math_entrypoint_object(roundf)
-add_math_entrypoint_object(roundl)
-add_math_entrypoint_object(roundf16)
-add_math_entrypoint_object(roundf128)
-add_math_entrypoint_object(roundbf16)
-
-add_math_entrypoint_object(roundeven)
-add_math_entrypoint_object(roundevenf)
-add_math_entrypoint_object(roundevenl)
-add_math_entrypoint_object(roundevenf16)
-add_math_entrypoint_object(roundevenf128)
-add_math_entrypoint_object(roundevenbf16)
-
-add_math_entrypoint_object(rsqrtf)
-add_math_entrypoint_object(rsqrtf16)
-
-add_math_entrypoint_object(scalbln)
-add_math_entrypoint_object(scalblnf)
-add_math_entrypoint_object(scalblnl)
-add_math_entrypoint_object(scalblnf16)
-add_math_entrypoint_object(scalblnf128)
-add_math_entrypoint_object(scalblnbf16)
-
-add_math_entrypoint_object(scalbn)
-add_math_entrypoint_object(scalbnf)
-add_math_entrypoint_object(scalbnl)
-add_math_entrypoint_object(scalbnf16)
-add_math_entrypoint_object(scalbnf128)
-add_math_entrypoint_object(scalbnbf16)
-
-add_math_entrypoint_object(setpayload)
-add_math_entrypoint_object(setpayloadf)
-add_math_entrypoint_object(setpayloadl)
-add_math_entrypoint_object(setpayloadf16)
-add_math_entrypoint_object(setpayloadf128)
-add_math_entrypoint_object(setpayloadbf16)
-
-add_math_entrypoint_object(setpayloadsig)
-add_math_entrypoint_object(setpayloadsigf)
-add_math_entrypoint_object(setpayloadsigl)
-add_math_entrypoint_object(setpayloadsigf16)
-add_math_entrypoint_object(setpayloadsigf128)
-add_math_entrypoint_object(setpayloadsigbf16)
-
-add_math_entrypoint_object(sincos)
-add_math_entrypoint_object(sincosf)
-
-add_math_entrypoint_object(sin)
-add_math_entrypoint_object(sinf)
-add_math_entrypoint_object(sinf16)
-add_math_entrypoint_object(sinpif)
-add_math_entrypoint_object(sinpif16)
-
-add_math_entrypoint_object(sinh)
-add_math_entrypoint_object(sinhf)
-add_math_entrypoint_object(sinhf16)
-
-add_math_entrypoint_object(sqrt)
-add_math_entrypoint_object(sqrtf)
-add_math_entrypoint_object(sqrtl)
-add_math_entrypoint_object(sqrtf16)
-add_math_entrypoint_object(sqrtf128)
-add_math_entrypoint_object(sqrtbf16)
-
-add_math_entrypoint_object(tan)
-add_math_entrypoint_object(tanf)
-add_math_entrypoint_object(tanf16)
-
-add_math_entrypoint_object(tanh)
-add_math_entrypoint_object(tanhf)
-add_math_entrypoint_object(tanhf16)
-
-add_math_entrypoint_object(tanpif)
-add_math_entrypoint_object(tanpif16)
-
-add_math_entrypoint_object(tgamma)
-add_math_entrypoint_object(tgammaf)
-add_math_entrypoint_object(lgamma)
-add_math_entrypoint_object(lgamma_r)
-
-add_math_entrypoint_object(totalorder)
-add_math_entrypoint_object(totalorderf)
-add_math_entrypoint_object(totalorderl)
-add_math_entrypoint_object(totalorderf16)
-add_math_entrypoint_object(totalorderf128)
-add_math_entrypoint_object(totalorderbf16)
-
-add_math_entrypoint_object(totalordermag)
-add_math_entrypoint_object(totalordermagf)
-add_math_entrypoint_object(totalordermagl)
-add_math_entrypoint_object(totalordermagf16)
-add_math_entrypoint_object(totalordermagf128)
-add_math_entrypoint_object(totalordermagbf16)
-
-add_math_entrypoint_object(trunc)
-add_math_entrypoint_object(truncf)
-add_math_entrypoint_object(truncl)
-add_math_entrypoint_object(truncf16)
-add_math_entrypoint_object(truncf128)
-add_math_entrypoint_object(truncbf16)
-
-add_math_entrypoint_object(ufromfp)
-add_math_entrypoint_object(ufromfpf)
-add_math_entrypoint_object(ufromfpl)
-add_math_entrypoint_object(ufromfpf16)
-add_math_entrypoint_object(ufromfpf128)
-add_math_entrypoint_object(ufromfpbf16)
-
-add_math_entrypoint_object(ufromfpx)
-add_math_entrypoint_object(ufromfpxf)
-add_math_entrypoint_object(ufromfpxl)
-add_math_entrypoint_object(ufromfpxf16)
-add_math_entrypoint_object(ufromfpxf128)
-add_math_entrypoint_object(ufromfpxbf16)
-
-add_math_entrypoint_object(bf16add)
-add_math_entrypoint_object(bf16addf)
-add_math_entrypoint_object(bf16addl)
-add_math_entrypoint_object(bf16addf128)
-
-add_math_entrypoint_object(bf16div)
-add_math_entrypoint_object(bf16divf)
-add_math_entrypoint_object(bf16divl)
-add_math_entrypoint_object(bf16divf128)
-
-add_math_entrypoint_object(bf16fma)
-add_math_entrypoint_object(bf16fmaf)
-add_math_entrypoint_object(bf16fmal)
-add_math_entrypoint_object(bf16fmaf128)
-
-add_math_entrypoint_object(bf16mul)
-add_math_entrypoint_object(bf16mulf)
-add_math_entrypoint_object(bf16mull)
-add_math_entrypoint_object(bf16mulf128)
-
-add_math_entrypoint_object(bf16sub)
-add_math_entrypoint_object(bf16subf)
-add_math_entrypoint_object(bf16subl)
-add_math_entrypoint_object(bf16subf128)
+add_subdirectory(generic)
+if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_ARCHITECTURE})
+ add_subdirectory(${LIBC_TARGET_ARCHITECTURE})
+endif()
+
+function(add_math_entrypoint_object name)
+ # We prefer machine specific implementation if available. Hence we check
+ # that first and return early if we are able to add an alias target for the
+ # machine specific implementation.
+ get_fq_target_name("${LIBC_TARGET_ARCHITECTURE}.${name}" fq_machine_specific_target_name)
+ if(TARGET ${fq_machine_specific_target_name})
+ add_entrypoint_object(
+ ${name}
+ ALIAS
+ DEPENDS
+ .${LIBC_TARGET_ARCHITECTURE}.${name}
+ )
+ return()
+ endif()
+
+ get_fq_target_name("generic.${name}" fq_generic_target_name)
+ if(TARGET ${fq_generic_target_name})
+ add_entrypoint_object(
+ ${name}
+ ALIAS
+ DEPENDS
+ .generic.${name}
+ )
+ return()
+ endif()
+
+ # Add a dummy entrypoint object for missing implementations. They will be skipped
+ # anyway as there will be no entry for them in the target entrypoints list.
+ add_entrypoint_object(
+ ${name}
+ SRCS
+ dummy_srcs
+ HDRS
+ dummy_hdrs
+ )
+endfunction()
+
+add_math_entrypoint_object(acos)
+add_math_entrypoint_object(acosf)
+add_math_entrypoint_object(acosf16)
+
+add_math_entrypoint_object(acosh)
+add_math_entrypoint_object(acoshf)
+add_math_entrypoint_object(acoshf16)
+
+add_math_entrypoint_object(acospif16)
+
+add_math_entrypoint_object(asin)
+add_math_entrypoint_object(asinf)
+add_math_entrypoint_object(asinf16)
+
+add_math_entrypoint_object(asinh)
+add_math_entrypoint_object(asinhf)
+add_math_entrypoint_object(asinhf16)
+
+add_math_entrypoint_object(asinpif16)
+
+add_math_entrypoint_object(atan)
+add_math_entrypoint_object(atanf)
+add_math_entrypoint_object(atanf16)
+
+add_math_entrypoint_object(atan2)
+add_math_entrypoint_object(atan2f)
+add_math_entrypoint_object(atan2l)
+add_math_entrypoint_object(atan2f128)
+
+add_math_entrypoint_object(atanh)
+add_math_entrypoint_object(atanhf)
+add_math_entrypoint_object(atanhf16)
+
+add_math_entrypoint_object(atanpif16)
+
+add_math_entrypoint_object(canonicalize)
+add_math_entrypoint_object(canonicalizef)
+add_math_entrypoint_object(canonicalizel)
+add_math_entrypoint_object(canonicalizef16)
+add_math_entrypoint_object(canonicalizef128)
+add_math_entrypoint_object(canonicalizebf16)
+
+add_math_entrypoint_object(iscanonical)
+add_math_entrypoint_object(iscanonicalf)
+add_math_entrypoint_object(iscanonicall)
+add_math_entrypoint_object(iscanonicalf16)
+add_math_entrypoint_object(iscanonicalf128)
+add_math_entrypoint_object(iscanonicalbf16)
+
+add_math_entrypoint_object(cbrt)
+add_math_entrypoint_object(cbrtf)
+
+add_math_entrypoint_object(ceil)
+add_math_entrypoint_object(ceilf)
+add_math_entrypoint_object(ceill)
+add_math_entrypoint_object(ceilf16)
+add_math_entrypoint_object(ceilf128)
+add_math_entrypoint_object(ceilbf16)
+
+add_math_entrypoint_object(copysign)
+add_math_entrypoint_object(copysignf)
+add_math_entrypoint_object(copysignl)
+add_math_entrypoint_object(copysignf16)
+add_math_entrypoint_object(copysignf128)
+add_math_entrypoint_object(copysignbf16)
+
+add_math_entrypoint_object(cos)
+add_math_entrypoint_object(cosf)
+add_math_entrypoint_object(cosf16)
+
+add_math_entrypoint_object(cosh)
+add_math_entrypoint_object(coshf)
+add_math_entrypoint_object(coshf16)
+
+add_math_entrypoint_object(cospif)
+add_math_entrypoint_object(cospif16)
+
+add_math_entrypoint_object(daddl)
+add_math_entrypoint_object(daddf128)
+add_math_entrypoint_object(ddivl)
+add_math_entrypoint_object(ddivf128)
+add_math_entrypoint_object(dmull)
+add_math_entrypoint_object(dmulf128)
+
+add_math_entrypoint_object(dfmal)
+add_math_entrypoint_object(dfmaf128)
+
+add_math_entrypoint_object(dsqrtl)
+add_math_entrypoint_object(dsqrtf128)
+
+add_math_entrypoint_object(dsubl)
+add_math_entrypoint_object(dsubf128)
+
+add_math_entrypoint_object(erf)
+add_math_entrypoint_object(erff)
+
+add_math_entrypoint_object(exp)
+add_math_entrypoint_object(expf)
+add_math_entrypoint_object(expf16)
+
+add_math_entrypoint_object(exp2)
+add_math_entrypoint_object(exp2f)
+add_math_entrypoint_object(exp2f16)
+
+add_math_entrypoint_object(exp2m1f)
+add_math_entrypoint_object(exp2m1f16)
+
+add_math_entrypoint_object(exp10)
+add_math_entrypoint_object(exp10f)
+add_math_entrypoint_object(exp10f16)
+
+add_math_entrypoint_object(exp10m1f)
+add_math_entrypoint_object(exp10m1f16)
+
+add_math_entrypoint_object(expm1)
+add_math_entrypoint_object(expm1f)
+add_math_entrypoint_object(expm1f16)
+
+add_math_entrypoint_object(f16add)
+add_math_entrypoint_object(f16addf)
+add_math_entrypoint_object(f16addl)
+add_math_entrypoint_object(f16addf128)
+
+add_math_entrypoint_object(f16div)
+add_math_entrypoint_object(f16divf)
+add_math_entrypoint_object(f16divl)
+add_math_entrypoint_object(f16divf128)
+
+add_math_entrypoint_object(f16fma)
+add_math_entrypoint_object(f16fmaf)
+add_math_entrypoint_object(f16fmal)
+add_math_entrypoint_object(f16fmaf128)
+
+add_math_entrypoint_object(f16mul)
+add_math_entrypoint_object(f16mulf)
+add_math_entrypoint_object(f16mull)
+add_math_entrypoint_object(f16mulf128)
+
+add_math_entrypoint_object(f16sqrt)
+add_math_entrypoint_object(f16sqrtf)
+add_math_entrypoint_object(f16sqrtl)
+add_math_entrypoint_object(f16sqrtf128)
+
+add_math_entrypoint_object(fsqrt)
+add_math_entrypoint_object(fsqrtl)
+add_math_entrypoint_object(fsqrtf128)
+
+add_math_entrypoint_object(f16sub)
+add_math_entrypoint_object(f16subf)
+add_math_entrypoint_object(f16subl)
+add_math_entrypoint_object(f16subf128)
+
+add_math_entrypoint_object(fabs)
+add_math_entrypoint_object(fabsf)
+add_math_entrypoint_object(fabsl)
+add_math_entrypoint_object(fabsf16)
+add_math_entrypoint_object(fabsf128)
+add_math_entrypoint_object(fabsbf16)
+
+add_math_entrypoint_object(fadd)
+add_math_entrypoint_object(faddl)
+add_math_entrypoint_object(faddf128)
+
+add_math_entrypoint_object(fdim)
+add_math_entrypoint_object(fdimf)
+add_math_entrypoint_object(fdiml)
+add_math_entrypoint_object(fdimf16)
+add_math_entrypoint_object(fdimf128)
+add_math_entrypoint_object(fdimbf16)
+
+add_math_entrypoint_object(fdiv)
+add_math_entrypoint_object(fdivl)
+add_math_entrypoint_object(fdivf128)
+
+add_math_entrypoint_object(ffma)
+add_math_entrypoint_object(ffmal)
+add_math_entrypoint_object(ffmaf128)
+
+add_math_entrypoint_object(floor)
+add_math_entrypoint_object(floorf)
+add_math_entrypoint_object(floorl)
+add_math_entrypoint_object(floorf16)
+add_math_entrypoint_object(floorf128)
+add_math_entrypoint_object(floorbf16)
+
+add_math_entrypoint_object(fma)
+add_math_entrypoint_object(fmaf)
+add_math_entrypoint_object(fmaf16)
+add_math_entrypoint_object(fmabf16)
+
+add_math_entrypoint_object(fmax)
+add_math_entrypoint_object(fmaxf)
+add_math_entrypoint_object(fmaxl)
+add_math_entrypoint_object(fmaxf128)
+add_math_entrypoint_object(fmaxf16)
+add_math_entrypoint_object(fmaxbf16)
+
+add_math_entrypoint_object(fmin)
+add_math_entrypoint_object(fminf)
+add_math_entrypoint_object(fminl)
+add_math_entrypoint_object(fminf128)
+add_math_entrypoint_object(fminf16)
+add_math_entrypoint_object(fminbf16)
+
+add_math_entrypoint_object(fmaximum)
+add_math_entrypoint_object(fmaximumf)
+add_math_entrypoint_object(fmaximuml)
+add_math_entrypoint_object(fmaximumf16)
+add_math_entrypoint_object(fmaximumf128)
+add_math_entrypoint_object(fmaximumbf16)
+
+add_math_entrypoint_object(fmaximum_num)
+add_math_entrypoint_object(fmaximum_numf)
+add_math_entrypoint_object(fmaximum_numl)
+add_math_entrypoint_object(fmaximum_numf16)
+add_math_entrypoint_object(fmaximum_numf128)
+add_math_entrypoint_object(fmaximum_numbf16)
+
+add_math_entrypoint_object(fmaximum_mag)
+add_math_entrypoint_object(fmaximum_magf)
+add_math_entrypoint_object(fmaximum_magl)
+add_math_entrypoint_object(fmaximum_magf16)
+add_math_entrypoint_object(fmaximum_magf128)
+add_math_entrypoint_object(fmaximum_magbf16)
+
+add_math_entrypoint_object(fmaximum_mag_num)
+add_math_entrypoint_object(fmaximum_mag_numf)
+add_math_entrypoint_object(fmaximum_mag_numl)
+add_math_entrypoint_object(fmaximum_mag_numf16)
+add_math_entrypoint_object(fmaximum_mag_numf128)
+add_math_entrypoint_object(fmaximum_mag_numbf16)
+
+add_math_entrypoint_object(fminimum)
+add_math_entrypoint_object(fminimumf)
+add_math_entrypoint_object(fminimuml)
+add_math_entrypoint_object(fminimumf16)
+add_math_entrypoint_object(fminimumf128)
+add_math_entrypoint_object(fminimumbf16)
+
+add_math_entrypoint_object(fminimum_num)
+add_math_entrypoint_object(fminimum_numf)
+add_math_entrypoint_object(fminimum_numl)
+add_math_entrypoint_object(fminimum_numf16)
+add_math_entrypoint_object(fminimum_numf128)
+add_math_entrypoint_object(fminimum_numbf16)
+
+add_math_entrypoint_object(fminimum_mag)
+add_math_entrypoint_object(fminimum_magf)
+add_math_entrypoint_object(fminimum_magl)
+add_math_entrypoint_object(fminimum_magf16)
+add_math_entrypoint_object(fminimum_magf128)
+add_math_entrypoint_object(fminimum_magbf16)
+
+add_math_entrypoint_object(fminimum_mag_num)
+add_math_entrypoint_object(fminimum_mag_numf)
+add_math_entrypoint_object(fminimum_mag_numl)
+add_math_entrypoint_object(fminimum_mag_numf16)
+add_math_entrypoint_object(fminimum_mag_numf128)
+add_math_entrypoint_object(fminimum_mag_numbf16)
+
+add_math_entrypoint_object(fmul)
+add_math_entrypoint_object(fmull)
+add_math_entrypoint_object(fmulf128)
+
+add_math_entrypoint_object(fmod)
+add_math_entrypoint_object(fmodf)
+add_math_entrypoint_object(fmodl)
+add_math_entrypoint_object(fmodf16)
+add_math_entrypoint_object(fmodf128)
+add_math_entrypoint_object(fmodbf16)
+
+add_math_entrypoint_object(frexp)
+add_math_entrypoint_object(frexpf)
+add_math_entrypoint_object(frexpl)
+add_math_entrypoint_object(frexpf16)
+add_math_entrypoint_object(frexpf128)
+add_math_entrypoint_object(frexpbf16)
+
+add_math_entrypoint_object(fromfp)
+add_math_entrypoint_object(fromfpf)
+add_math_entrypoint_object(fromfpl)
+add_math_entrypoint_object(fromfpf16)
+add_math_entrypoint_object(fromfpf128)
+add_math_entrypoint_object(fromfpbf16)
+
+add_math_entrypoint_object(fromfpx)
+add_math_entrypoint_object(fromfpxf)
+add_math_entrypoint_object(fromfpxl)
+add_math_entrypoint_object(fromfpxf16)
+add_math_entrypoint_object(fromfpxf128)
+add_math_entrypoint_object(fromfpxbf16)
+
+add_math_entrypoint_object(fsub)
+add_math_entrypoint_object(fsubl)
+add_math_entrypoint_object(fsubf128)
+
+add_math_entrypoint_object(getpayload)
+add_math_entrypoint_object(getpayloadf)
+add_math_entrypoint_object(getpayloadl)
+add_math_entrypoint_object(getpayloadf16)
+add_math_entrypoint_object(getpayloadf128)
+add_math_entrypoint_object(getpayloadbf16)
+
+add_math_entrypoint_object(hypot)
+add_math_entrypoint_object(hypotf)
+add_math_entrypoint_object(hypotf16)
+
+add_math_entrypoint_object(ilogb)
+add_math_entrypoint_object(ilogbf)
+add_math_entrypoint_object(ilogbl)
+add_math_entrypoint_object(ilogbf16)
+add_math_entrypoint_object(ilogbf128)
+add_math_entrypoint_object(ilogbbf16)
+
+add_math_entrypoint_object(isnan)
+add_math_entrypoint_object(isnanf)
+add_math_entrypoint_object(isnanl)
+
+add_math_entrypoint_object(issignaling)
+add_math_entrypoint_object(issignalingf)
+add_math_entrypoint_object(issignalingl)
+add_math_entrypoint_object(issignalingf16)
+add_math_entrypoint_object(issignalingf128)
+add_math_entrypoint_object(issignalingbf16)
+
+add_math_entrypoint_object(llogb)
+add_math_entrypoint_object(llogbf)
+add_math_entrypoint_object(llogbl)
+add_math_entrypoint_object(llogbf16)
+add_math_entrypoint_object(llogbf128)
+add_math_entrypoint_object(llogbbf16)
+
+add_math_entrypoint_object(ldexp)
+add_math_entrypoint_object(ldexpf)
+add_math_entrypoint_object(ldexpl)
+add_math_entrypoint_object(ldexpf16)
+add_math_entrypoint_object(ldexpf128)
+add_math_entrypoint_object(ldexpbf16)
+
+add_math_entrypoint_object(log10)
+add_math_entrypoint_object(log10f)
+add_math_entrypoint_object(log10f16)
+
+add_math_entrypoint_object(log1p)
+add_math_entrypoint_object(log1pf)
+
+add_math_entrypoint_object(log2)
+add_math_entrypoint_object(log2f)
+add_math_entrypoint_object(log2f16)
+
+add_math_entrypoint_object(log)
+add_math_entrypoint_object(logf)
+add_math_entrypoint_object(logf16)
+add_math_entrypoint_object(log_bf16)
+
+add_math_entrypoint_object(logb)
+add_math_entrypoint_object(logbf)
+add_math_entrypoint_object(logbl)
+add_math_entrypoint_object(logbf16)
+add_math_entrypoint_object(logbf128)
+add_math_entrypoint_object(logbbf16)
+
+add_math_entrypoint_object(llrint)
+add_math_entrypoint_object(llrintf)
+add_math_entrypoint_object(llrintl)
+add_math_entrypoint_object(llrintf16)
+add_math_entrypoint_object(llrintf128)
+add_math_entrypoint_object(llrintbf16)
+
+add_math_entrypoint_object(llround)
+add_math_entrypoint_object(llroundf)
+add_math_entrypoint_object(llroundl)
+add_math_entrypoint_object(llroundf16)
+add_math_entrypoint_object(llroundf128)
+add_math_entrypoint_object(llroundbf16)
+
+add_math_entrypoint_object(lrint)
+add_math_entrypoint_object(lrintf)
+add_math_entrypoint_object(lrintl)
+add_math_entrypoint_object(lrintf16)
+add_math_entrypoint_object(lrintf128)
+add_math_entrypoint_object(lrintbf16)
+
+add_math_entrypoint_object(lround)
+add_math_entrypoint_object(lroundf)
+add_math_entrypoint_object(lroundl)
+add_math_entrypoint_object(lroundf16)
+add_math_entrypoint_object(lroundf128)
+add_math_entrypoint_object(lroundbf16)
+
+add_math_entrypoint_object(modf)
+add_math_entrypoint_object(modff)
+add_math_entrypoint_object(modfl)
+add_math_entrypoint_object(modff16)
+add_math_entrypoint_object(modff128)
+add_math_entrypoint_object(modfbf16)
+
+add_math_entrypoint_object(nan)
+add_math_entrypoint_object(nanf)
+add_math_entrypoint_object(nanl)
+add_math_entrypoint_object(nanf16)
+add_math_entrypoint_object(nanf128)
+add_math_entrypoint_object(nanbf16)
+
+add_math_entrypoint_object(nearbyint)
+add_math_entrypoint_object(nearbyintf)
+add_math_entrypoint_object(nearbyintl)
+add_math_entrypoint_object(nearbyintf16)
+add_math_entrypoint_object(nearbyintf128)
+add_math_entrypoint_object(nearbyintbf16)
+
+add_math_entrypoint_object(nextafter)
+add_math_entrypoint_object(nextafterf)
+add_math_entrypoint_object(nextafterl)
+add_math_entrypoint_object(nextafterf16)
+add_math_entrypoint_object(nextafterf128)
+add_math_entrypoint_object(nextafterbf16)
+
+add_math_entrypoint_object(nexttoward)
+add_math_entrypoint_object(nexttowardf)
+add_math_entrypoint_object(nexttowardl)
+add_math_entrypoint_object(nexttowardf16)
+add_math_entrypoint_object(nexttowardbf16)
+
+add_math_entrypoint_object(nextdown)
+add_math_entrypoint_object(nextdownf)
+add_math_entrypoint_object(nextdownl)
+add_math_entrypoint_object(nextdownf16)
+add_math_entrypoint_object(nextdownf128)
+add_math_entrypoint_object(nextdownbf16)
+
+add_math_entrypoint_object(nextup)
+add_math_entrypoint_object(nextupf)
+add_math_entrypoint_object(nextupl)
+add_math_entrypoint_object(nextupf16)
+add_math_entrypoint_object(nextupf128)
+add_math_entrypoint_object(nextupbf16)
+
+add_math_entrypoint_object(pow)
+add_math_entrypoint_object(powf)
+add_math_entrypoint_object(powi)
+add_math_entrypoint_object(powif)
+
+add_math_entrypoint_object(remainder)
+add_math_entrypoint_object(remainderf)
+add_math_entrypoint_object(remainderl)
+add_math_entrypoint_object(remainderf16)
+add_math_entrypoint_object(remainderf128)
+add_math_entrypoint_object(remainderbf16)
+
+add_math_entrypoint_object(remquo)
+add_math_entrypoint_object(remquof)
+add_math_entrypoint_object(remquol)
+add_math_entrypoint_object(remquof16)
+add_math_entrypoint_object(remquof128)
+add_math_entrypoint_object(remquobf16)
+
+add_math_entrypoint_object(rint)
+add_math_entrypoint_object(rintf)
+add_math_entrypoint_object(rintl)
+add_math_entrypoint_object(rintf16)
+add_math_entrypoint_object(rintf128)
+add_math_entrypoint_object(rintbf16)
+
+add_math_entrypoint_object(round)
+add_math_entrypoint_object(roundf)
+add_math_entrypoint_object(roundl)
+add_math_entrypoint_object(roundf16)
+add_math_entrypoint_object(roundf128)
+add_math_entrypoint_object(roundbf16)
+
+add_math_entrypoint_object(roundeven)
+add_math_entrypoint_object(roundevenf)
+add_math_entrypoint_object(roundevenl)
+add_math_entrypoint_object(roundevenf16)
+add_math_entrypoint_object(roundevenf128)
+add_math_entrypoint_object(roundevenbf16)
+
+add_math_entrypoint_object(rsqrtf)
+add_math_entrypoint_object(rsqrtf16)
+
+add_math_entrypoint_object(scalbln)
+add_math_entrypoint_object(scalblnf)
+add_math_entrypoint_object(scalblnl)
+add_math_entrypoint_object(scalblnf16)
+add_math_entrypoint_object(scalblnf128)
+add_math_entrypoint_object(scalblnbf16)
+
+add_math_entrypoint_object(scalbn)
+add_math_entrypoint_object(scalbnf)
+add_math_entrypoint_object(scalbnl)
+add_math_entrypoint_object(scalbnf16)
+add_math_entrypoint_object(scalbnf128)
+add_math_entrypoint_object(scalbnbf16)
+
+add_math_entrypoint_object(setpayload)
+add_math_entrypoint_object(setpayloadf)
+add_math_entrypoint_object(setpayloadl)
+add_math_entrypoint_object(setpayloadf16)
+add_math_entrypoint_object(setpayloadf128)
+add_math_entrypoint_object(setpayloadbf16)
+
+add_math_entrypoint_object(setpayloadsig)
+add_math_entrypoint_object(setpayloadsigf)
+add_math_entrypoint_object(setpayloadsigl)
+add_math_entrypoint_object(setpayloadsigf16)
+add_math_entrypoint_object(setpayloadsigf128)
+add_math_entrypoint_object(setpayloadsigbf16)
+
+add_math_entrypoint_object(sincos)
+add_math_entrypoint_object(sincosf)
+
+add_math_entrypoint_object(sin)
+add_math_entrypoint_object(sinf)
+add_math_entrypoint_object(sinf16)
+add_math_entrypoint_object(sinpif)
+add_math_entrypoint_object(sinpif16)
+
+add_math_entrypoint_object(sinh)
+add_math_entrypoint_object(sinhf)
+add_math_entrypoint_object(sinhf16)
+
+add_math_entrypoint_object(sqrt)
+add_math_entrypoint_object(sqrtf)
+add_math_entrypoint_object(sqrtl)
+add_math_entrypoint_object(sqrtf16)
+add_math_entrypoint_object(sqrtf128)
+add_math_entrypoint_object(sqrtbf16)
+
+add_math_entrypoint_object(tan)
+add_math_entrypoint_object(tanf)
+add_math_entrypoint_object(tanf16)
+
+add_math_entrypoint_object(tanh)
+add_math_entrypoint_object(tanhf)
+add_math_entrypoint_object(tanhf16)
+
+add_math_entrypoint_object(tanpif)
+add_math_entrypoint_object(tanpif16)
+
+add_math_entrypoint_object(tgamma)
+add_math_entrypoint_object(tgammaf)
+add_math_entrypoint_object(lgamma)
+add_math_entrypoint_object(lgamma_r)
+
+add_math_entrypoint_object(totalorder)
+add_math_entrypoint_object(totalorderf)
+add_math_entrypoint_object(totalorderl)
+add_math_entrypoint_object(totalorderf16)
+add_math_entrypoint_object(totalorderf128)
+add_math_entrypoint_object(totalorderbf16)
+
+add_math_entrypoint_object(totalordermag)
+add_math_entrypoint_object(totalordermagf)
+add_math_entrypoint_object(totalordermagl)
+add_math_entrypoint_object(totalordermagf16)
+add_math_entrypoint_object(totalordermagf128)
+add_math_entrypoint_object(totalordermagbf16)
+
+add_math_entrypoint_object(trunc)
+add_math_entrypoint_object(truncf)
+add_math_entrypoint_object(truncl)
+add_math_entrypoint_object(truncf16)
+add_math_entrypoint_object(truncf128)
+add_math_entrypoint_object(truncbf16)
+
+add_math_entrypoint_object(ufromfp)
+add_math_entrypoint_object(ufromfpf)
+add_math_entrypoint_object(ufromfpl)
+add_math_entrypoint_object(ufromfpf16)
+add_math_entrypoint_object(ufromfpf128)
+add_math_entrypoint_object(ufromfpbf16)
+
+add_math_entrypoint_object(ufromfpx)
+add_math_entrypoint_object(ufromfpxf)
+add_math_entrypoint_object(ufromfpxl)
+add_math_entrypoint_object(ufromfpxf16)
+add_math_entrypoint_object(ufromfpxf128)
+add_math_entrypoint_object(ufromfpxbf16)
+
+add_math_entrypoint_object(bf16add)
+add_math_entrypoint_object(bf16addf)
+add_math_entrypoint_object(bf16addl)
+add_math_entrypoint_object(bf16addf128)
+
+add_math_entrypoint_object(bf16div)
+add_math_entrypoint_object(bf16divf)
+add_math_entrypoint_object(bf16divl)
+add_math_entrypoint_object(bf16divf128)
+
+add_math_entrypoint_object(bf16fma)
+add_math_entrypoint_object(bf16fmaf)
+add_math_entrypoint_object(bf16fmal)
+add_math_entrypoint_object(bf16fmaf128)
+
+add_math_entrypoint_object(bf16mul)
+add_math_entrypoint_object(bf16mulf)
+add_math_entrypoint_object(bf16mull)
+add_math_entrypoint_object(bf16mulf128)
+
+add_math_entrypoint_object(bf16sub)
+add_math_entrypoint_object(bf16subf)
+add_math_entrypoint_object(bf16subl)
+add_math_entrypoint_object(bf16subf128)
diff --git a/libc/src/math/ffmal.h b/libc/src/math/ffmal.h
index 75fd40a0a92a2..1cbb61dcd2134 100644
--- a/libc/src/math/ffmal.h
+++ b/libc/src/math/ffmal.h
@@ -1,20 +1,20 @@
-//===-- Implementation header for ffmal -------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIBC_SRC_MATH_FFMAL_H
-#define LLVM_LIBC_SRC_MATH_FFMAL_H
-
-#include "src/__support/macros/config.h"
-
-namespace LIBC_NAMESPACE_DECL {
-
-float ffmal(long double x, long double y, long double z);
-
-} // namespace LIBC_NAMESPACE_DECL
-
-#endif // LLVM_LIBC_SRC_MATH_FFMAL_H
+//===-- Implementation header for ffmal -------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC_MATH_FFMAL_H
+#define LLVM_LIBC_SRC_MATH_FFMAL_H
+
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+float ffmal(long double x, long double y, long double z);
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC_MATH_FFMAL_H
diff --git a/libc/src/math/fmabf16.h b/libc/src/math/fmabf16.h
new file mode 100644
index 0000000000000..5ba0876894f9a
--- /dev/null
+++ b/libc/src/math/fmabf16.h
@@ -0,0 +1,21 @@
+//===-- Implementation header for fmabf16 -----------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC_MATH_FMABF16_H
+#define LLVM_LIBC_SRC_MATH_FMABF16_H
+
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/properties/types.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+bfloat16 fmabf16(bfloat16 x, bfloat16 y, bfloat16 z);
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC_MATH_FMABF16_H
diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt
index 96dc0e7ca4851..5768defa013ff 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -4545,6 +4545,20 @@ add_entrypoint_object(
libc.src.__support.macros.properties.types
)
+add_entrypoint_object(
+ fmabf16
+ SRCS
+ fmabf16.cpp
+ HDRS
+ ../fmabf16.h
+ DEPENDS
+ libc.src.__support.common
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.FMA
+ libc.src.__support.macros.config
+ libc.src.__support.macros.properties.types
+)
+
add_entrypoint_object(
fma
SRCS
diff --git a/libc/src/math/generic/fmabf16.cpp b/libc/src/math/generic/fmabf16.cpp
new file mode 100644
index 0000000000000..233dbc9089f9c
--- /dev/null
+++ b/libc/src/math/generic/fmabf16.cpp
@@ -0,0 +1,21 @@
+//===-- Implementation of fmabf16 function --------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/math/fmabf16.h"
+#include "src/__support/common.h"
+#include "src/__support/FPUtil/FMA.h"
+#include "src/__support/FPUtil/bfloat16.h"
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+LLVM_LIBC_FUNCTION(bfloat16, fmabf16, (bfloat16 x, bfloat16 y, bfloat16 z)) {
+ return fputil::fma<bfloat16>(x, y, z);
+}
+
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/math/CMakeLists.txt b/libc/test/src/math/CMakeLists.txt
index ff5c511922171..e478b57c9b3c8 100644
--- a/libc/test/src/math/CMakeLists.txt
+++ b/libc/test/src/math/CMakeLists.txt
@@ -1,3466 +1,3482 @@
-add_custom_target(libc-math-unittests)
-
-add_fp_unittest(
- cosf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cosf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cosf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- cosf_float_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cosf_float_test.cpp
- DEPENDS
- libc.src.__support.math.sincosf_utils
- libc.src.__support.FPUtil.fp_bits
- FLAGS
- FMA_OPT__ONLY
-)
-
-add_fp_unittest(
- cos_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cos_test.cpp
- DEPENDS
- libc.src.math.cos
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- cosf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cosf16_test.cpp
- DEPENDS
- libc.src.math.cosf16
-)
-
-add_fp_unittest(
- cospif_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cospif_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cospif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-
-add_fp_unittest(
- cospif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cospif16_test.cpp
- DEPENDS
- libc.src.math.cospif16
-)
-
-add_fp_unittest(
- daddl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- daddl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.daddl
-)
-
-add_fp_unittest(
- sinf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinf_float_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinf_float_test.cpp
- DEPENDS
- libc.src.__support.math.sincosf_utils
- libc.src.__support.FPUtil.fp_bits
- FLAGS
- FMA_OPT__ONLY
-)
-
-add_fp_unittest(
- sinf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinf16_test.cpp
- DEPENDS
- libc.src.math.sinf16
-)
-
-add_fp_unittest(
- sinpif_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinpif_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinpif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinpif16_test.cpp
- DEPENDS
- libc.src.math.sinpif16
-)
-
-add_fp_unittest(
- sin_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sin_test.cpp
- DEPENDS
- libc.src.math.sin
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sincosf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sincosf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sincosf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sincos_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sincos_test.cpp
- DEPENDS
- libc.src.math.sincos
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanf16_test.cpp
- DEPENDS
- libc.src.math.tanf16
-)
-
-add_fp_unittest(
- tanpif_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanpif_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.src.math.tanpif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanpif16_test.cpp
- DEPENDS
- libc.src.math.tanpif16
-)
-
-add_fp_unittest(
- fabs_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fabs_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabs
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fabsf_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fabsl_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fadd_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fadd_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.fadd
- libc.src.__support.FPUtil.basic_operations
-)
-
-add_fp_unittest(
- faddl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- faddl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.faddl
-)
-
-add_fp_unittest(
- trunc_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- trunc_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.trunc
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- truncf_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- truncl_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- truncf16_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceil_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ceil_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceil
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ceilf_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceill_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ceill_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceill
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ceilf16_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floor_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- floor_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floor
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- floorf_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- floorl_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- floorf16_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- round_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- round_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.round
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundf_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundl_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundf16_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundeven_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundeven_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundeven
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundevenf_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundevenl_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundevenf16_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lround_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lround_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lround
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lroundf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lroundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lroundl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lroundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lroundf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lroundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lroundbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lroundbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llround_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llround_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llround
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llroundf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llroundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llroundl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llroundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llroundf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llroundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llroundbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llroundbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nearbyint_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyint_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyint
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
-)
-
-add_fp_unittest(
- nearbyintf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyintf_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
-)
-
-add_fp_unittest(
- nearbyintl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyintl_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
-)
-
-add_fp_unittest(
- nearbyintf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyintf16_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
-)
-
-add_fp_unittest(
- nearbyintbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyintbf16_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- rint_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rint_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rintf_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rintl_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rintf16_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rintbf16_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrint_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrint_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrintf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrintl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrintf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrintbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrint_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrint_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrintf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrintl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrintf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrintbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp_test.cpp
- DEPENDS
- libc.src.math.exp
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expf_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.expf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expf16_test.cpp
- DEPENDS
- libc.src.math.expf16
-)
-
-add_fp_unittest(
- exp2_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2_test.cpp
- DEPENDS
- libc.src.math.exp2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.exp2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2f16_test.cpp
- DEPENDS
- libc.src.math.exp2f16
-)
-
-add_fp_unittest(
- exp2m1f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2m1f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.exp2m1f
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2m1f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2m1f16_test.cpp
- DEPENDS
- libc.src.math.exp2m1f16
-)
-
-add_fp_unittest(
- exp10_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10_test.cpp
- DEPENDS
- libc.src.math.exp10
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp10f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.exp10f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp10f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10f16_test.cpp
- DEPENDS
- libc.src.math.exp10f16
-)
-
-add_fp_unittest(
- exp10m1f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10m1f16_test.cpp
- DEPENDS
- libc.src.math.exp10m1f16
-)
-
-add_fp_unittest(
- exp10m1f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10m1f_test.cpp
- DEPENDS
- libc.hdr.math_macros
- libc.src.errno.errno
- libc.src.math.exp10m1f
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysign_test
- SUITE
- libc-math-unittests
- SRCS
- copysign_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysign
- libc.src.__support.FPUtil.fp_bits
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- copysignf_test
- SUITE
- libc-math-unittests
- SRCS
- copysignf_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignf
- libc.src.__support.FPUtil.fp_bits
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- copysignl_test
- SUITE
- libc-math-unittests
- SRCS
- copysignl_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignl
- libc.src.__support.FPUtil.fp_bits
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- frexp_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- frexp_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexp
- libc.src.__support.FPUtil.basic_operations
-)
-
-add_fp_unittest(
- frexpf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- frexpf_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpf
- libc.src.__support.FPUtil.basic_operations
-)
-
-add_fp_unittest(
- frexpl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- frexpl_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpl
- libc.src.__support.FPUtil.basic_operations
-)
-
-add_fp_unittest(
- ilogb_test
- SUITE
- libc-math-unittests
- SRCS
- ilogb_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogb
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbf_test
- SUITE
- libc-math-unittests
- SRCS
- ilogbf_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbf
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbl_test
- SUITE
- libc-math-unittests
- SRCS
- ilogbl_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbl
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ldexp_test
- SUITE
- libc-math-unittests
- SRCS
- ldexp_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexp
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpf_test
- SUITE
- libc-math-unittests
- SRCS
- ldexpf_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpf
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpl_test
- SUITE
- libc-math-unittests
- SRCS
- ldexpl_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpl
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- logb_test
- SUITE
- libc-math-unittests
- SRCS
- logb_test.cpp
- DEPENDS
- libc.src.math.logb
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbf_test
- SUITE
- libc-math-unittests
- SRCS
- logbf_test.cpp
- DEPENDS
- libc.src.math.logbf
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbl_test
- SUITE
- libc-math-unittests
- SRCS
- logbl_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbl
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- modf_test
- SUITE
- libc-math-unittests
- SRCS
- modf_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
- # Requires C++ limits.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- modff_test
- SUITE
- libc-math-unittests
- SRCS
- modff_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modff
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
- # Requires C++ limits.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- modfl_test
- SUITE
- libc-math-unittests
- SRCS
- modfl_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modfl
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- fdimf_test
- SUITE
- libc-math-unittests
- SRCS
- fdimf_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdim_test
- SUITE
- libc-math-unittests
- SRCS
- fdim_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdim
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdiml_test
- SUITE
- libc-math-unittests
- SRCS
- fdiml_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdiml
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminf_test
- SUITE
- libc-math-unittests
- SRCS
- fminf_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmin_test
- SUITE
- libc-math-unittests
- SRCS
- fmin_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fmin
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminl_test
- SUITE
- libc-math-unittests
- SRCS
- fminl_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxf_test
- SUITE
- libc-math-unittests
- SRCS
- fmaxf_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmax_test
- SUITE
- libc-math-unittests
- SRCS
- fmax_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmax
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxl_test
- SUITE
- libc-math-unittests
- SRCS
- fmaxl_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sqrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf
-)
-
-add_fp_unittest(
- sqrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrt
-)
-
-add_fp_unittest(
- sqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtl
-)
-
-add_fp_unittest(
- rsqrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rsqrtf_test.cpp
- DEPENDS
- libc.src.math.rsqrtf
-)
-
-add_fp_unittest(
- rsqrtf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rsqrtf16_test.cpp
- DEPENDS
- libc.src.math.rsqrtf16
-)
-
-add_fp_unittest(
- sqrtf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtf16_test.cpp
- DEPENDS
- libc.src.math.sqrtf16
-)
-
-add_fp_unittest(
- sqrtf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf128
-)
-
-add_fp_unittest(
- sqrtbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtbf16_test.cpp
- DEPENDS
- libc.src.math.sqrtbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- generic_sqrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- generic_sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- generic_sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrt
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- generic_sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtl
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- remquof_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- remquof_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquof
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquo_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- remquo_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquo
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquol_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- remquol_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquol
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypotf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- hypotf_test.cpp
- DEPENDS
- libc.src.math.hypotf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypot_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- hypot_test.cpp
- DEPENDS
- libc.src.math.hypot
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypotf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- hypotf16_test.cpp
- DEPENDS
- libc.src.math.hypotf16
-)
-
-add_fp_unittest(
- nextafter_test
- SUITE
- libc-math-unittests
- SRCS
- nextafter_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.src.math.nextafter
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf_test
- SUITE
- libc-math-unittests
- SRCS
- nextafterf_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.src.math.nextafterf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterl_test
- SUITE
- libc-math-unittests
- SRCS
- nextafterl_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.src.math.nextafterl
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf128_test
- SUITE
- libc-math-unittests
- SRCS
- nextafterf128_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.src.math.nextafterf128
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-# TODO(lntue): The current implementation of fputil::general::fma<float> is only
-# correctly rounded for the default rounding mode round-to-nearest tie-to-even.
-add_fp_unittest(
- fmaf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmaf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- FLAGS
- FMA_OPT__ONLY
-)
-
-add_fp_unittest(
- fmaf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fmaf16_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmaf16
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- fma_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fma
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- tan_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tan_test.cpp
- DEPENDS
- libc.src.math.tan
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expm1_test.cpp
- DEPENDS
- libc.src.math.expm1
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expm1f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.expm1f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expm1f16_test.cpp
- DEPENDS
- libc.src.math.expm1f16
-)
-
-add_fp_unittest(
- log_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log_test.cpp
- DEPENDS
- libc.src.math.log
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- logf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- logf_test.cpp
- DEPENDS
- libc.src.math.logf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- logf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- logf16_test.cpp
- DEPENDS
- libc.src.math.logf16
-)
-
-add_fp_unittest(
- log_bf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log_bf16_test.cpp
- DEPENDS
- libc.src.math.log_bf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
-log2_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log2_test.cpp
- DEPENDS
- libc.src.math.log2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log2f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log2f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.log2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log2f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log2f16_test.cpp
- DEPENDS
- libc.src.math.log2f16
-)
-
-add_fp_unittest(
- log10_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log10_test.cpp
- DEPENDS
- libc.src.math.log10
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log10f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log10f_test.cpp
- DEPENDS
- libc.src.math.log10f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log10f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log10f16_test.cpp
- DEPENDS
- libc.src.math.log10f16
-)
-
-add_fp_unittest(
-log1p_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log1p_test.cpp
- DEPENDS
- libc.src.math.log1p
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log1pf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log1pf_test.cpp
- DEPENDS
- libc.src.math.log1pf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmodf_test
- SUITE
- libc-math-unittests
- SRCS
- fmodf_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.fmodf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmod_test
- SUITE
- libc-math-unittests
- SRCS
- fmod_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.fmod
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- explogxf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- HDRS
- in_float_range_test_helper.h
- SRCS
- explogxf_test.cpp
- DEPENDS
- libc.src.math.generic.explogxf
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- coshf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- coshf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.coshf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- coshf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- coshf16_test.cpp
- DEPENDS
- libc.src.math.coshf16
-)
-
-add_fp_unittest(
- sinhf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinhf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinhf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinhf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinhf16_test.cpp
- DEPENDS
- libc.src.math.sinhf16
-)
-
-add_fp_unittest(
- tanhf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanhf_test.cpp
- DEPENDS
- libc.src.math.tanhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanhf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanhf16_test.cpp
- DEPENDS
- libc.src.math.tanhf16
-)
-
-add_fp_unittest(
- atanhf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.atanhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atanhf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanhf16_test.cpp
- DEPENDS
- libc.src.math.atanhf16
-)
-
-add_fp_unittest(
- atanpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanpif16_test.cpp
- DEPENDS
- libc.src.math.atanpif16
-)
-
-add_fp_unittest(
- fmul_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fmul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.fmul
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- fmull_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fmull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.fmull
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- asinhf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinhf_test.cpp
- DEPENDS
- libc.src.math.asinhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- asinhf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinhf16_test.cpp
- DEPENDS
- libc.src.math.asinhf16
-)
-
-add_fp_unittest(
- acoshf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acoshf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acoshf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- acoshf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acoshf16_test.cpp
- DEPENDS
- libc.src.math.acoshf16
-)
-
-add_fp_unittest(
- asinf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- asin_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asin_test.cpp
- DEPENDS
- libc.src.math.asin
-)
-
-add_fp_unittest(
- asinf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinf16_test.cpp
- DEPENDS
- libc.src.math.asinf16
-)
-
-add_fp_unittest(
- asinpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinpif16_test.cpp
- DEPENDS
- libc.src.math.asinpif16
-)
-
-add_fp_unittest(
- acosf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acosf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acosf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- acos_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acos_test.cpp
- DEPENDS
- libc.src.math.acos
-)
-
-add_fp_unittest(
- acosf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acosf16_test.cpp
- DEPENDS
- libc.src.math.acosf16
-)
-
-add_fp_unittest(
- acospif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acospif16_test.cpp
- DEPENDS
- libc.src.math.acospif16
-)
-
-add_fp_unittest(
- atanf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanf_test.cpp
- DEPENDS
- libc.src.math.atanf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atan_test.cpp
- DEPENDS
- libc.src.math.atan
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atanf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanf16_test.cpp
- DEPENDS
- libc.src.math.atanf16
-)
-
-add_fp_unittest(
- scalbn_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- scalbn_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbn
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- scalbnf_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- scalbnl_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnl
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- scalbnf128_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf128
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- erff_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- erff_test.cpp
- DEPENDS
- libc.src.math.erff
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- pow_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- pow_test.cpp
- DEPENDS
- libc.src.math.pow
-)
-
-add_fp_unittest(
- powf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- powf_test.cpp
- DEPENDS
- libc.src.math.powf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan2f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atan2f_test.cpp
- DEPENDS
- libc.src.math.atan2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan2_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atan2_test.cpp
- DEPENDS
- libc.src.math.atan2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan2f128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atan2f128_test.cpp
- DEPENDS
- libc.src.math.atan2f128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- f16add_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.f16add
-)
-
-add_fp_unittest(
- f16addf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16addf_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.f16addf
-)
-
-add_fp_unittest(
- f16addl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16addl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.f16addl
-)
-
-add_fp_unittest(
- f16sub_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.f16sub
-)
-
-add_fp_unittest(
- f16subf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16subf_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.f16subf
-)
-
-add_fp_unittest(
- f16subl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16subl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.f16subl
-)
-
-add_fp_unittest(
- f16div_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.f16div
-)
-
-add_fp_unittest(
- f16divf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16divf_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.f16divf
-)
-
-add_fp_unittest(
- f16divl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16divl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.f16divl
-)
-
-add_fp_unittest(
- f16fma_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fma
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16fmaf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmaf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16fmal_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16fmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmal
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16sqrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrt
-)
-
-add_fp_unittest(
- f16sqrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtf
-)
-
-add_fp_unittest(
- f16sqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtl
-)
-
-add_fp_unittest(
- fsqrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fsqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrt
-)
-
-add_fp_unittest(
- fsqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fsqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrtl
-)
-
-add_fp_unittest(
- fsub_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fsub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.fsub
-)
-
-add_fp_unittest(
- fsubl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fsubl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.fsubl
-)
-
-add_fp_unittest(
- dsqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- dsqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.dsqrtl
-)
-
-add_fp_unittest(
- cbrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cbrtf_test.cpp
- DEPENDS
- libc.src.math.cbrtf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- cbrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cbrt_test.cpp
- DEPENDS
- libc.src.math.cbrt
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- dmull_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- dmull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.dmull
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16mul_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.f16mul
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16mulf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16mulf_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.f16mulf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16mull_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16mull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.f16mull
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- ddivl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ddivl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.ddivl
-)
-
-add_fp_unittest(
- dfmal_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- dfmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.dfmal
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- dsubl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- dsubl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.dsubl
-)
-
-add_fp_unittest(
- fdiv_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fdiv_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.fdiv
-)
-
-add_fp_unittest(
- fdivl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fdivl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.fdivl
-)
-
-add_fp_unittest(
- ffma_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ffma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffma
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- ffmal_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ffmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffmal
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- add_same_type_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- add_same_type_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- sub_same_type_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sub_same_type_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- bf16add_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.bf16add
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16addf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16addf_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.bf16addf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16addl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16addl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.bf16addl
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16addf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16addf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.bf16addf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16div_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.bf16div
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16divf_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.bf16divf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16divl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.bf16divl
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16divf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.bf16divf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fma_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.bf16fma
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmaf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.bf16fmaf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmal_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16fmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.bf16fmal
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmaf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16fmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.bf16fmaf128
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mul_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.bf16mul
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mulf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16mulf_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.bf16mulf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mull_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16mull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.bf16mull
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mulf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16mulf128_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.bf16mulf128
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16sub_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.bf16sub
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16subf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16subf_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.bf16subf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16subl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16subl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.bf16subl
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16subf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16subf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.bf16subf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_subdirectory(generic)
-add_subdirectory(smoke)
-
-if(NOT LLVM_LIBC_FULL_BUILD)
- add_subdirectory(exhaustive)
- add_subdirectory(performance_testing)
-endif()
+add_custom_target(libc-math-unittests)
+
+add_fp_unittest(
+ cosf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cosf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cosf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ cosf_float_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cosf_float_test.cpp
+ DEPENDS
+ libc.src.__support.math.sincosf_utils
+ libc.src.__support.FPUtil.fp_bits
+ FLAGS
+ FMA_OPT__ONLY
+)
+
+add_fp_unittest(
+ cos_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cos_test.cpp
+ DEPENDS
+ libc.src.math.cos
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ cosf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cosf16_test.cpp
+ DEPENDS
+ libc.src.math.cosf16
+)
+
+add_fp_unittest(
+ cospif_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cospif_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cospif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+
+add_fp_unittest(
+ cospif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cospif16_test.cpp
+ DEPENDS
+ libc.src.math.cospif16
+)
+
+add_fp_unittest(
+ daddl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ daddl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.daddl
+)
+
+add_fp_unittest(
+ sinf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinf_float_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinf_float_test.cpp
+ DEPENDS
+ libc.src.__support.math.sincosf_utils
+ libc.src.__support.FPUtil.fp_bits
+ FLAGS
+ FMA_OPT__ONLY
+)
+
+add_fp_unittest(
+ sinf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinf16_test.cpp
+ DEPENDS
+ libc.src.math.sinf16
+)
+
+add_fp_unittest(
+ sinpif_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinpif_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinpif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinpif16_test.cpp
+ DEPENDS
+ libc.src.math.sinpif16
+)
+
+add_fp_unittest(
+ sin_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sin_test.cpp
+ DEPENDS
+ libc.src.math.sin
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sincosf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sincosf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sincosf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sincos_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sincos_test.cpp
+ DEPENDS
+ libc.src.math.sincos
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanf16_test.cpp
+ DEPENDS
+ libc.src.math.tanf16
+)
+
+add_fp_unittest(
+ tanpif_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanpif_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.src.math.tanpif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanpif16_test.cpp
+ DEPENDS
+ libc.src.math.tanpif16
+)
+
+add_fp_unittest(
+ fabs_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fabs_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabs
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fabsf_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fabsl_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fadd_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fadd_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.fadd
+ libc.src.__support.FPUtil.basic_operations
+)
+
+add_fp_unittest(
+ faddl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ faddl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.faddl
+)
+
+add_fp_unittest(
+ trunc_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ trunc_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.trunc
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ truncf_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ truncl_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ truncf16_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceil_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ceil_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceil
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ceilf_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceill_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ceill_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceill
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ceilf16_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floor_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ floor_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floor
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ floorf_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ floorl_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ floorf16_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ round_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ round_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.round
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundf_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundl_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundf16_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundeven_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundeven_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundeven
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundevenf_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundevenl_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundevenf16_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lround_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lround_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lround
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lroundf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lroundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lroundl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lroundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lroundf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lroundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lroundbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lroundbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llround_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llround_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llround
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llroundf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llroundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llroundl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llroundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llroundf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llroundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llroundbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llroundbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nearbyint_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyint_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+)
+
+add_fp_unittest(
+ nearbyintf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyintf_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+)
+
+add_fp_unittest(
+ nearbyintl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyintl_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+)
+
+add_fp_unittest(
+ nearbyintf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyintf16_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+)
+
+add_fp_unittest(
+ nearbyintbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyintbf16_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ rint_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rint_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rintf_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rintl_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rintf16_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rintbf16_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrint_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrint_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrintf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrintl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrintf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrintbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrint_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrint_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrintf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrintl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrintf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrintbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp_test.cpp
+ DEPENDS
+ libc.src.math.exp
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expf_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.expf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expf16_test.cpp
+ DEPENDS
+ libc.src.math.expf16
+)
+
+add_fp_unittest(
+ exp2_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2_test.cpp
+ DEPENDS
+ libc.src.math.exp2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.exp2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2f16_test.cpp
+ DEPENDS
+ libc.src.math.exp2f16
+)
+
+add_fp_unittest(
+ exp2m1f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2m1f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.exp2m1f
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2m1f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2m1f16_test.cpp
+ DEPENDS
+ libc.src.math.exp2m1f16
+)
+
+add_fp_unittest(
+ exp10_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10_test.cpp
+ DEPENDS
+ libc.src.math.exp10
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp10f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.exp10f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp10f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10f16_test.cpp
+ DEPENDS
+ libc.src.math.exp10f16
+)
+
+add_fp_unittest(
+ exp10m1f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10m1f16_test.cpp
+ DEPENDS
+ libc.src.math.exp10m1f16
+)
+
+add_fp_unittest(
+ exp10m1f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10m1f_test.cpp
+ DEPENDS
+ libc.hdr.math_macros
+ libc.src.errno.errno
+ libc.src.math.exp10m1f
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysign_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ copysign_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysign
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ copysignf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ copysignf_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignf
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ copysignl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ copysignl_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignl
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ frexp_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ frexp_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexp
+ libc.src.__support.FPUtil.basic_operations
+)
+
+add_fp_unittest(
+ frexpf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ frexpf_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpf
+ libc.src.__support.FPUtil.basic_operations
+)
+
+add_fp_unittest(
+ frexpl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ frexpl_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpl
+ libc.src.__support.FPUtil.basic_operations
+)
+
+add_fp_unittest(
+ ilogb_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ilogb_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogb
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ilogbf_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbf
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ilogbl_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbl
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ldexp_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ldexp_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexp
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ldexpf_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpf
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ldexpl_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpl
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ logb_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ logb_test.cpp
+ DEPENDS
+ libc.src.math.logb
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ logbf_test.cpp
+ DEPENDS
+ libc.src.math.logbf
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ logbl_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbl
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ modf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ modf_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+ # Requires C++ limits.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ modff_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ modff_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modff
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+ # Requires C++ limits.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ modfl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ modfl_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modfl
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ fdimf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdimf_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdim_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdim_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdim
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdiml_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdiml_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdiml
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fminf_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmin_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmin_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fmin
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fminl_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmaxf_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmax_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmax_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmax
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmaxl_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sqrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf
+)
+
+add_fp_unittest(
+ sqrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrt
+)
+
+add_fp_unittest(
+ sqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtl
+)
+
+add_fp_unittest(
+ rsqrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rsqrtf_test.cpp
+ DEPENDS
+ libc.src.math.rsqrtf
+)
+
+add_fp_unittest(
+ rsqrtf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rsqrtf16_test.cpp
+ DEPENDS
+ libc.src.math.rsqrtf16
+)
+
+add_fp_unittest(
+ sqrtf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtf16_test.cpp
+ DEPENDS
+ libc.src.math.sqrtf16
+)
+
+add_fp_unittest(
+ sqrtf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf128
+)
+
+add_fp_unittest(
+ sqrtbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtbf16_test.cpp
+ DEPENDS
+ libc.src.math.sqrtbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ generic_sqrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ generic_sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ generic_sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrt
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ generic_sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtl
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ remquof_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ remquof_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquof
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquo_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ remquo_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquo
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquol_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ remquol_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquol
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypotf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ hypotf_test.cpp
+ DEPENDS
+ libc.src.math.hypotf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypot_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ hypot_test.cpp
+ DEPENDS
+ libc.src.math.hypot
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypotf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ hypotf16_test.cpp
+ DEPENDS
+ libc.src.math.hypotf16
+)
+
+add_fp_unittest(
+ nextafter_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ nextafter_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.src.math.nextafter
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ nextafterf_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.src.math.nextafterf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ nextafterl_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.src.math.nextafterl
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf128_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ nextafterf128_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.src.math.nextafterf128
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+# TODO(lntue): The current implementation of fputil::general::fma<float> is only
+# correctly rounded for the default rounding mode round-to-nearest tie-to-even.
+add_fp_unittest(
+ fmaf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmaf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ FLAGS
+ FMA_OPT__ONLY
+)
+
+add_fp_unittest(
+ fmaf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmaf16_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmaf16
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ fmabf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmabf16_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmabf16
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ fma_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fma
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ tan_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tan_test.cpp
+ DEPENDS
+ libc.src.math.tan
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expm1_test.cpp
+ DEPENDS
+ libc.src.math.expm1
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expm1f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.expm1f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expm1f16_test.cpp
+ DEPENDS
+ libc.src.math.expm1f16
+)
+
+add_fp_unittest(
+ log_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log_test.cpp
+ DEPENDS
+ libc.src.math.log
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ logf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ logf_test.cpp
+ DEPENDS
+ libc.src.math.logf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ logf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ logf16_test.cpp
+ DEPENDS
+ libc.src.math.logf16
+)
+
+add_fp_unittest(
+ log_bf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log_bf16_test.cpp
+ DEPENDS
+ libc.src.math.log_bf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+log2_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log2_test.cpp
+ DEPENDS
+ libc.src.math.log2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log2f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log2f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.log2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log2f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log2f16_test.cpp
+ DEPENDS
+ libc.src.math.log2f16
+)
+
+add_fp_unittest(
+ log10_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log10_test.cpp
+ DEPENDS
+ libc.src.math.log10
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log10f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log10f_test.cpp
+ DEPENDS
+ libc.src.math.log10f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log10f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log10f16_test.cpp
+ DEPENDS
+ libc.src.math.log10f16
+)
+
+add_fp_unittest(
+log1p_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log1p_test.cpp
+ DEPENDS
+ libc.src.math.log1p
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log1pf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log1pf_test.cpp
+ DEPENDS
+ libc.src.math.log1pf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmodf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmodf_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.fmodf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmod_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmod_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.fmod
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ explogxf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ HDRS
+ in_float_range_test_helper.h
+ SRCS
+ explogxf_test.cpp
+ DEPENDS
+ libc.src.math.generic.explogxf
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ coshf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ coshf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.coshf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ coshf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ coshf16_test.cpp
+ DEPENDS
+ libc.src.math.coshf16
+)
+
+add_fp_unittest(
+ sinhf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinhf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinhf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinhf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinhf16_test.cpp
+ DEPENDS
+ libc.src.math.sinhf16
+)
+
+add_fp_unittest(
+ tanhf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanhf_test.cpp
+ DEPENDS
+ libc.src.math.tanhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanhf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanhf16_test.cpp
+ DEPENDS
+ libc.src.math.tanhf16
+)
+
+add_fp_unittest(
+ atanhf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.atanhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atanhf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanhf16_test.cpp
+ DEPENDS
+ libc.src.math.atanhf16
+)
+
+add_fp_unittest(
+ atanpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanpif16_test.cpp
+ DEPENDS
+ libc.src.math.atanpif16
+)
+
+add_fp_unittest(
+ fmul_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.fmul
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ fmull_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.fmull
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ asinhf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinhf_test.cpp
+ DEPENDS
+ libc.src.math.asinhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ asinhf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinhf16_test.cpp
+ DEPENDS
+ libc.src.math.asinhf16
+)
+
+add_fp_unittest(
+ acoshf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acoshf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acoshf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ acoshf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acoshf16_test.cpp
+ DEPENDS
+ libc.src.math.acoshf16
+)
+
+add_fp_unittest(
+ asinf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ asin_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asin_test.cpp
+ DEPENDS
+ libc.src.math.asin
+)
+
+add_fp_unittest(
+ asinf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinf16_test.cpp
+ DEPENDS
+ libc.src.math.asinf16
+)
+
+add_fp_unittest(
+ asinpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinpif16_test.cpp
+ DEPENDS
+ libc.src.math.asinpif16
+)
+
+add_fp_unittest(
+ acosf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acosf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acosf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ acos_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acos_test.cpp
+ DEPENDS
+ libc.src.math.acos
+)
+
+add_fp_unittest(
+ acosf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acosf16_test.cpp
+ DEPENDS
+ libc.src.math.acosf16
+)
+
+add_fp_unittest(
+ acospif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acospif16_test.cpp
+ DEPENDS
+ libc.src.math.acospif16
+)
+
+add_fp_unittest(
+ atanf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanf_test.cpp
+ DEPENDS
+ libc.src.math.atanf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atan_test.cpp
+ DEPENDS
+ libc.src.math.atan
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atanf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanf16_test.cpp
+ DEPENDS
+ libc.src.math.atanf16
+)
+
+add_fp_unittest(
+ scalbn_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ scalbn_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbn
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ scalbnf_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ scalbnl_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnl
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ scalbnf128_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf128
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ erff_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ erff_test.cpp
+ DEPENDS
+ libc.src.math.erff
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ pow_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ pow_test.cpp
+ DEPENDS
+ libc.src.math.pow
+)
+
+add_fp_unittest(
+ powf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ powf_test.cpp
+ DEPENDS
+ libc.src.math.powf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan2f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atan2f_test.cpp
+ DEPENDS
+ libc.src.math.atan2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan2_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atan2_test.cpp
+ DEPENDS
+ libc.src.math.atan2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan2f128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atan2f128_test.cpp
+ DEPENDS
+ libc.src.math.atan2f128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ f16add_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.f16add
+)
+
+add_fp_unittest(
+ f16addf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16addf_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.f16addf
+)
+
+add_fp_unittest(
+ f16addl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16addl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.f16addl
+)
+
+add_fp_unittest(
+ f16sub_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.f16sub
+)
+
+add_fp_unittest(
+ f16subf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16subf_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.f16subf
+)
+
+add_fp_unittest(
+ f16subl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16subl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.f16subl
+)
+
+add_fp_unittest(
+ f16div_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.f16div
+)
+
+add_fp_unittest(
+ f16divf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16divf_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.f16divf
+)
+
+add_fp_unittest(
+ f16divl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16divl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.f16divl
+)
+
+add_fp_unittest(
+ f16fma_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fma
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16fmaf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmaf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16fmal_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16fmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmal
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16sqrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrt
+)
+
+add_fp_unittest(
+ f16sqrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtf
+)
+
+add_fp_unittest(
+ f16sqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtl
+)
+
+add_fp_unittest(
+ fsqrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fsqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrt
+)
+
+add_fp_unittest(
+ fsqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fsqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrtl
+)
+
+add_fp_unittest(
+ fsub_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fsub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.fsub
+)
+
+add_fp_unittest(
+ fsubl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fsubl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.fsubl
+)
+
+add_fp_unittest(
+ dsqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ dsqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.dsqrtl
+)
+
+add_fp_unittest(
+ cbrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cbrtf_test.cpp
+ DEPENDS
+ libc.src.math.cbrtf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ cbrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cbrt_test.cpp
+ DEPENDS
+ libc.src.math.cbrt
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ dmull_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ dmull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.dmull
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16mul_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.f16mul
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16mulf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16mulf_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.f16mulf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16mull_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16mull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.f16mull
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ ddivl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ddivl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.ddivl
+)
+
+add_fp_unittest(
+ dfmal_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ dfmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.dfmal
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ dsubl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ dsubl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.dsubl
+)
+
+add_fp_unittest(
+ fdiv_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdiv_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.fdiv
+)
+
+add_fp_unittest(
+ fdivl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdivl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.fdivl
+)
+
+add_fp_unittest(
+ ffma_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ffma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffma
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ ffmal_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ffmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffmal
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ add_same_type_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ add_same_type_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ sub_same_type_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sub_same_type_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ bf16add_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.bf16add
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16addf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16addf_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.bf16addf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16addl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16addl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.bf16addl
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16addf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16addf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.bf16addf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16div_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.bf16div
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16divf_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.bf16divf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16divl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.bf16divl
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16divf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.bf16divf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fma_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.bf16fma
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmaf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.bf16fmaf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmal_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16fmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.bf16fmal
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmaf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16fmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.bf16fmaf128
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mul_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.bf16mul
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mulf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16mulf_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.bf16mulf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mull_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16mull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.bf16mull
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mulf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16mulf128_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.bf16mulf128
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16sub_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.bf16sub
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16subf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16subf_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.bf16subf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16subl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16subl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.bf16subl
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16subf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16subf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.bf16subf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_subdirectory(generic)
+add_subdirectory(smoke)
+
+if(NOT LLVM_LIBC_FULL_BUILD)
+ add_subdirectory(exhaustive)
+ add_subdirectory(performance_testing)
+endif()
diff --git a/libc/test/src/math/bf16mul_test.cpp b/libc/test/src/math/bf16mul_test.cpp
index 3682705556b0a..76bd3dba42566 100644
--- a/libc/test/src/math/bf16mul_test.cpp
+++ b/libc/test/src/math/bf16mul_test.cpp
@@ -1,15 +1,15 @@
-//===-- Unittests for bf16mul ---------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "MulTest.h"
-
-#include "src/math/bf16mul.h"
-
-#include "src/__support/FPUtil/bfloat16.h"
-
-LIST_MUL_TESTS(bfloat16, double, LIBC_NAMESPACE::bf16mul)
+//===-- Unittests for bf16mul ---------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "MulTest.h"
+
+#include "src/math/bf16mul.h"
+
+#include "src/__support/FPUtil/bfloat16.h"
+
+LIST_MUL_TESTS(bfloat16, double, LIBC_NAMESPACE::bf16mul)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
new file mode 100644
index 0000000000000..ae01948c21ca5
--- /dev/null
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -0,0 +1,29 @@
+// //===-- Exhaustive test for fmabf16 ---------------------------------------===//
+// //
+// // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// // See https://llvm.org/LICENSE.txt for license information.
+// // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// //
+// //===----------------------------------------------------------------------===//
+
+// #include "src/__support/FPUtil/bfloat16.h"
+// #include "src/math/fmabf16.h"
+// #include "test/UnitTest/FPMatcher.h"
+// #include "test/UnitTest/Test.h"
+// #include "utils/MPFRWrapper/MPFRUtils.h"
+
+// using LlvmLibcFmabf16Test = LIBC_NAMESPACE::testing::FPTest<bfloat16>;
+
+// namespace mpfr = LIBC_NAMESPACE::testing::mpfr;
+
+// // range: [0, inf]
+// static constexpr uint16_t POS_START = 0x0000U;
+// static constexpr uint16_t POS_STOP = 0x7f80U;
+
+// TEST_F(LlvmLibcSqrtf16Test, PositiveRange) {
+// for (uint16_t v = POS_START; v <= POS_STOP; ++v) {
+// bfloat16 x = FPBits(v).get_val();
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Sqrt, x,
+// LIBC_NAMESPACE::sqrtbf16(x), 0.5);
+// }
+// }
diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt
index 5afd3a9f22967..73b72b69d883a 100644
--- a/libc/test/src/math/smoke/CMakeLists.txt
+++ b/libc/test/src/math/smoke/CMakeLists.txt
@@ -1,6518 +1,6531 @@
-add_custom_target(libc-math-smoke-tests)
-add_dependencies(libc-math-unittests libc-math-smoke-tests)
-
-add_fp_unittest(
- cosf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cosf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cosf
-)
-
-add_fp_unittest(
- cosf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cosf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cosf16
-)
-
-add_fp_unittest(
- cospif_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cospif_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cospif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- cospif16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cospif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cospif16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- sinf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- sinpif_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinpif_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinpif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinpif16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinpif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinpif16
-)
-
-add_fp_unittest(
- sincosf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sincosf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sincosf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanf16
-)
-
-add_fp_unittest(
- tanpif_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanpif_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanpif
-)
-
-add_fp_unittest(
- tanpif16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanpif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanpif16
-)
-
-add_fp_unittest(
- fabs_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabs_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabs
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsf_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsl_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsf16_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsf16
-)
-
-add_fp_unittest(
- fabsf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsf128_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsbf16_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.__support.FPUtil.bfloat16
- libc.src.math.fabsbf16
-)
-
-add_fp_unittest(
- fadd_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fadd_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fadd
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- faddl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- faddl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.faddl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- faddf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- faddf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.faddf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- trunc_test
- SUITE
- libc-math-smoke-tests
- SRCS
- trunc_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.trunc
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncf_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncl_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncf16_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf16
-)
-
-add_fp_unittest(
- truncf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncf128_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncbf16_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- canonicalize_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalize_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalize
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizef_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizef_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizef
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizef16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizef16_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizef16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizef128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizef128_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizef128
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizel_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizel_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizel
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizebf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizebf16_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizebf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- iscanonical_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonical_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonical
-)
-
-add_fp_unittest(
- iscanonicalf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicalf_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicalf
-)
-
-add_fp_unittest(
- iscanonicall_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicall_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicall
-)
-
-add_fp_unittest(
- iscanonicalf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicalf16_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicalf16
-)
-
-add_fp_unittest(
- iscanonicalf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicalf128_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicalf128
-)
-
-add_fp_unittest(
- iscanonicalbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicalbf16_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicalbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- ceil_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceil_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceil
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceilf_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceill_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceill_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceill
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceilf16_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf16
-)
-
-add_fp_unittest(
- ceilf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceilf128_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceilbf16_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- dfmal_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dfmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.dfmal
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- dfmaf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dfmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.dfmaf128
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- dsubl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dsubl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.dsubl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- dsubf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dsubf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.dsubf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- floor_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floor_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floor
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorf_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorl_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorf16_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf16
-)
-
-add_fp_unittest(
- floorf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorf128_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorbf16_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- round_test
- SUITE
- libc-math-smoke-tests
- SRCS
- round_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.round
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundf_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundl_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundf16_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf16
-)
-
-add_fp_unittest(
- roundf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundf128_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundbf16_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- roundeven_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundeven_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundeven
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenf_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenl_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenf16_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf16
-)
-
-add_fp_unittest(
- roundevenf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenf128_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenbf16_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- lround_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lround_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lround
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundf128_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llround_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llround_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llround
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundf128_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rint_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rint_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rint
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintf_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintf
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintl_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintl
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintf16_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintf16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintf128_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintf128
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintbf16_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintbf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrint_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrint_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintf128_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrint_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrint_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintf128_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.expf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.expf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp2_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.exp2f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp2m1f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2m1f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp2m1f
-)
-
-add_fp_unittest(
- exp2m1f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2m1f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.exp2m1f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp10_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp10
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp10f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp10f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp10f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.exp10f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp10m1f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10m1f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.exp10m1f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp10m1f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10m1f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp10m1f
-)
-
-add_fp_unittest(
- copysign_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysign_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysign
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignf_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignl_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignf16_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignf128_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignbf16_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- frexp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexp_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexp
-)
-
-add_fp_unittest(
- frexpf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpf_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpf
-)
-
-add_fp_unittest(
- frexpl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpl_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpl
-)
-
-add_fp_unittest(
- frexpf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpf16_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpf16
-)
-
-add_fp_unittest(
- frexpf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpf128_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpf128
-)
-
-add_fp_unittest(
- frexpbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpbf16_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- fromfp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfp_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfp
-)
-
-add_fp_unittest(
- fromfpf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpf_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpf
-)
-
-add_fp_unittest(
- fromfpl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpl_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpl
-)
-
-add_fp_unittest(
- fromfpf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpf16_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpf16
-)
-
-add_fp_unittest(
- fromfpf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpf128_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpf128
-)
-
-add_fp_unittest(
- fromfpbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpbf16_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- fromfpx_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpx_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpx
-)
-
-add_fp_unittest(
- fromfpxf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxf_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxf
-)
-
-add_fp_unittest(
- fromfpxl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxl_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxl
-)
-
-add_fp_unittest(
- fromfpxf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxf16_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxf16
-)
-
-add_fp_unittest(
- fromfpxf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxf128_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxf128
-)
-
-add_fp_unittest(
- fromfpxbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxbf16_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-
-add_fp_unittest(
- ufromfp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfp_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfp
-)
-
-add_fp_unittest(
- ufromfpf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpf_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpf
-)
-
-add_fp_unittest(
- ufromfpl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpl_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpl
-)
-
-add_fp_unittest(
- ufromfpf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpf16_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpf16
-)
-
-add_fp_unittest(
- ufromfpf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpf128_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpf128
-)
-
-add_fp_unittest(
- ufromfpbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpbf16_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- ufromfpx_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpx_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpx
-)
-
-add_fp_unittest(
- ufromfpxf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxf_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxf
-)
-
-add_fp_unittest(
- ufromfpxl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxl_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxl
-)
-
-add_fp_unittest(
- ufromfpxf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxf16_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxf16
-)
-
-add_fp_unittest(
- ufromfpxf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxf128_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxf128
-)
-
-add_fp_unittest(
- ufromfpxbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxbf16_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- ilogb_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogb_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogb
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbf_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbl_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbf16_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbf128_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbbf16_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- issignaling_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignaling_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignaling
-)
-
-add_fp_unittest(
- issignalingf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingf_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingf
-)
-
-add_fp_unittest(
- issignalingl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingl_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingl
-)
-
-add_fp_unittest(
- issignalingf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingf16_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingf16
-)
-
-add_fp_unittest(
- issignalingf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingf128_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingf128
-)
-
-add_fp_unittest(
- issignalingbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingbf16_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- llogb_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogb_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogb
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbf_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbl_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbf16_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbf128_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbbf16_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ldexp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexp_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexp
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpf_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpf
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpl_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpl
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpf16_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpf128_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpbf16_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- logb_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logb_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logb
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbf_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbl_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbf16_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbf128_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbbf16_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- modf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modf_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modff_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modff_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modff
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modfl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modfl_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modfl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modff16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modff16_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modff16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modff128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modff128_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modff128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modfbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modfbf16_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modfbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- fdimf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdimf_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdim_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdim_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdim
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdiml_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdiml_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdiml
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdimf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdimf16_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdimf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdimf128_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdimbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdimbf16_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminf_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmin_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmin_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fmin
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminl_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminf128_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminf16_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminbf16_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxf_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmax_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmax_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmax
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxl_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxf128_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxf16_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxbf16_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximuml_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximuml_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximuml
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximumf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximumf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximumf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximumf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximumf128_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximumf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximum
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximumf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximumf_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximumf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numf_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_numf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximumbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximumbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximumbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_num_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_num_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_num
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numl_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_numl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numf16_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_numf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numf128_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_numf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximum_numbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magf_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_magf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_mag
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magl_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_magl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magf16_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_magf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magf128_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_magf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximum_magbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numf_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_num_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_num_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_num
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numl_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numl
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numf16_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numf16
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numf128_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numf128
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimuml_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimuml_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimuml
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimumf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimumf16_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimumf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimumf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimumf128_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimumf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimum
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimumf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimumf_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimumf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimumbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimumbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fminimumbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numf_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_numf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_num_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_num_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_num
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numl_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_numl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numf16_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_numf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numf128_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_numf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fminimum_numf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magf_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_magf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_mag
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magl_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_magl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magf16_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_magf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magf128_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_magf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fminimum_magbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numf_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_num_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_num_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_num
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numl_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numf16_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numf128_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmul_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.fmul
-)
-
-add_fp_unittest(
- fmull_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.fmull
-)
-
-add_fp_unittest(
- sqrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf
-)
-
-add_fp_unittest(
- sqrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrt
-)
-
-add_fp_unittest(
- sqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtl
-)
-
-add_fp_unittest(
- rsqrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rsqrtf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.rsqrtf
-)
-
-add_fp_unittest(
- rsqrtf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rsqrtf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.rsqrtf16
-)
-
-add_fp_unittest(
- sqrtf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtf16_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf16
-)
-
-add_fp_unittest(
- sqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf128
-)
-
-add_fp_unittest(
- sqrtbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtbf16_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- generic_sqrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- generic_sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- generic_sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- generic_sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- generic_sqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- # The dependency on sqrtf128 is used to disable the test when float128
- # support is not available.
- libc.src.math.sqrtf128
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- remquof_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquof_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquof
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquof128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquof128_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquof128
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquo_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquo_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquo
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquol_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquol_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquol
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquof16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquof16_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquof16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquobf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquobf16_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquobf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypotf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- hypotf_test.cpp
- HDRS
- HypotTest.h
- DEPENDS
- libc.src.math.hypotf
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.macros.properties.architectures
-)
-
-add_fp_unittest(
- hypotf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- hypotf16_test.cpp
- HDRS
- HypotTest.h
- DEPENDS
- libc.src.math.hypotf16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypot_test
- SUITE
- libc-math-smoke-tests
- SRCS
- hypot_test.cpp
- HDRS
- HypotTest.h
- DEPENDS
- libc.src.math.hypot
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.macros.properties.architectures
-)
-
-add_fp_unittest(
- nanf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanf_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanf
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nan_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nan_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nan
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nanl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanl_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanl
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nanf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanf16_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanf16
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nanf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanf128_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanf128
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nanbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanbf16_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanbf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nearbyint_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyint_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyint
-)
-
-add_fp_unittest(
- nearbyintf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintf_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintf
-)
-
-add_fp_unittest(
- nearbyintl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintl_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintl
-)
-
-add_fp_unittest(
- nearbyintf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintf16_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintf16
-)
-
-add_fp_unittest(
- nearbyintf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintf128_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintf128
-)
-
-add_fp_unittest(
- nearbyintbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintbf16_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- nextafter_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafter_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafter
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterf_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterf
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterl_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterl
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterf16_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterf16
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterf128_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterf128
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterbf16_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterbf16
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-# FIXME: These tests are currently spurious for the GPU.
-if(NOT LIBC_TARGET_OS_IS_GPU)
- add_fp_unittest(
- nexttoward_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttoward_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttoward
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
- )
-
- add_fp_unittest(
- nexttowardf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttowardf_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttowardf
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
- )
-endif()
-
-add_fp_unittest(
- nexttowardl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttowardl_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttowardl
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nexttowardf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttowardf16_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttowardf16
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nexttowardbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttowardbf16_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttowardbf16
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextdown_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdown_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdown
-)
-
-add_fp_unittest(
- nextdownf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownf_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownf
-)
-
-add_fp_unittest(
- nextdownl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownl_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownl
-)
-
-add_fp_unittest(
- nextdownf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownf16_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownf16
-)
-
-add_fp_unittest(
- nextdownf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownf128_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownf128
-)
-
-add_fp_unittest(
- nextdownbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownbf16_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- nextup_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextup_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextup
-)
-
-add_fp_unittest(
- nextupf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupf_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupf
-)
-
-add_fp_unittest(
- nextupl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupl_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupl
-)
-
-add_fp_unittest(
- nextupf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupf16_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupf16
-)
-
-add_fp_unittest(
- nextupf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupf128_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupf128
-)
-
-add_fp_unittest(
- nextupbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupbf16_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-# TODO(lntue): The current implementation of fputil::general::fma<float> is only
-# correctly rounded for the default rounding mode round-to-nearest tie-to-even.
-add_fp_unittest(
- fmaf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmaf
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- fmaf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaf16_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmaf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- fma_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fma
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- expm1_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expm1_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.expm1
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expm1f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.expm1f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expm1f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.expm1f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- log_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- logf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.logf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- logf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.logf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- log_bf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log_bf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.log_bf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- log2_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log2_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log2f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log2f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log2f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log2f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.log2f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- log10_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log10_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log10
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log10f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log10f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log10f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log10f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log10f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.log10f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- log1p_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log1p_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log1p
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log1pf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log1pf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log1pf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmodf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodf_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodf
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmod_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmod_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmod
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmodl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodl_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodl
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmodf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodf16_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodf16
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmodf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodf128_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodf128
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmodbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodbf16_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodbf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- coshf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- coshf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.coshf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- coshf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- coshf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.coshf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- sinhf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinhf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinhf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinhf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.sinhf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- tanhf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanhf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanhf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.tanhf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- atanhf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atanhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.atanhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atanhf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atanhf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.atanhf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- atanpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanpif16_test.cpp
- DEPENDS
- libc.src.math.atanpif16
-)
-
-add_fp_unittest(
- asinhf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asinhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- asinhf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asinhf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinhf16
-)
-
-add_fp_unittest(
- asinpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinpif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinpif16
-)
-
-add_fp_unittest(
- acoshf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acoshf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acoshf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- acoshf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acoshf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acoshf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- asinf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asinf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- asin_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asin_test.cpp
- DEPENDS
- libc.src.math.asin
-)
-
-add_fp_unittest(
- asinf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asinf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinf16
-)
-
-add_fp_unittest(
- acosf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acosf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acosf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- acos_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acos_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.acos
-)
-
-add_fp_unittest(
- acosf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acosf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acosf16
-)
-
-add_fp_unittest(
- acospif16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acospif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acospif16
-)
-
-add_fp_unittest(
- atanf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atanf_test.cpp
- DEPENDS
- libc.src.math.atanf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atan_test.cpp
- DEPENDS
- libc.src.math.atan
-)
-
-add_fp_unittest(
- atanf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atanf16_test.cpp
- DEPENDS
- libc.src.math.atanf16
-)
-
-add_fp_unittest(
- atan2f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atan2f_test.cpp
- DEPENDS
- libc.src.math.atan2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan2_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atan2_test.cpp
- DEPENDS
- libc.src.math.atan2
-)
-
-add_fp_unittest(
- atan2f128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atan2f128_test.cpp
- DEPENDS
- libc.src.math.atan2f128
-)
-
-add_fp_unittest(
- scalbln_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbln_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbln
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnf_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnf
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnl_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnl
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnf16_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnf16
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnf128_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnf128
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnbf16_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnbf16
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbn_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbn_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbn
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnf_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnl_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnl
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnf16_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf16
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnf128_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf128
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnbf16_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnbf16
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- erff_test
- SUITE
- libc-math-smoke-tests
- SRCS
- erff_test.cpp
- DEPENDS
- libc.src.math.erff
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- pow_test
- SUITE
- libc-math-smoke-tests
- SRCS
- pow_test.cpp
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.pow
-)
-
-add_fp_unittest(
- powf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- powf_test.cpp
- DEPENDS
- libc.src.math.powf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- totalorder_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorder_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorder
-)
-
-add_fp_unittest(
- totalorderf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderf_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderf
-)
-
-add_fp_unittest(
- totalorderl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderl_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderl
-)
-
-add_fp_unittest(
- totalorderf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderf16_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderf16
-)
-
-add_fp_unittest(
- totalorderf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderf128_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderf128
-)
-
-add_fp_unittest(
- totalorderbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderbf16_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- totalordermag_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermag_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermag
-)
-
-add_fp_unittest(
- totalordermagf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagf_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagf
-)
-
-add_fp_unittest(
- totalordermagl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagl_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagl
-)
-
-add_fp_unittest(
- totalordermagf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagf16_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagf16
-)
-
-add_fp_unittest(
- totalordermagf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagf128_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagf128
-)
-
-add_fp_unittest(
- totalordermagbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagbf16_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- getpayload_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayload_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayload
-)
-
-add_fp_unittest(
- getpayloadf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadf_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadf
-)
-
-add_fp_unittest(
- getpayloadl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadl_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadl
-)
-
-add_fp_unittest(
- getpayloadf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadf16_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadf16
-)
-
-add_fp_unittest(
- getpayloadf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadf128_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadf128
-)
-
-add_fp_unittest(
- getpayloadbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadbf16_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- setpayload_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayload_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayload
-)
-
-add_fp_unittest(
- setpayloadf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadf_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadf
-)
-
-add_fp_unittest(
- setpayloadl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadl_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadl
-)
-
-add_fp_unittest(
- setpayloadf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadf16_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadf16
-)
-
-add_fp_unittest(
- setpayloadf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadf128_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadf128
-)
-
-add_fp_unittest(
- setpayloadbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadbf16_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- setpayloadsig_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsig_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsig
-)
-
-add_fp_unittest(
- setpayloadsigf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigf_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsigf
-)
-
-add_fp_unittest(
- setpayloadsigl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigl_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsigl
-)
-
-add_fp_unittest(
- setpayloadsigf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigf16_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsigf16
-)
-
-add_fp_unittest(
- setpayloadsigf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigf128_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsigf128
-)
-
-add_fp_unittest(
- setpayloadsigbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigbf16_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadsigbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- f16add_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16add
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16addf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16addf_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16addf
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16addl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16addl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16addl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16addf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16addf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16addf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16sub_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16sub
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16subf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16subf_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16subf
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16subl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16subl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16subl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16subf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16subf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16subf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16div_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16div
-)
-
-add_fp_unittest(
- f16divf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16divf_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16divf
-)
-
-add_fp_unittest(
- f16divl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16divl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16divl
-)
-
-add_fp_unittest(
- f16divf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16divf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16divf128
-)
-
-add_fp_unittest(
- f16fma_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fma
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- f16fmaf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmaf
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- f16fmal_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16fmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmal
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- f16fmaf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16fmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmaf128
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- f16sqrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrt
-)
-
-add_fp_unittest(
- f16sqrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtf
-)
-
-add_fp_unittest(
- f16sqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtl
-)
-
-add_fp_unittest(
- f16sqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtf128
-)
-
-add_fp_unittest(
- fdiv_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdiv_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fdiv
-)
-
-add_fp_unittest(
- fdivl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdivl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fdivl
-)
-
-add_fp_unittest(
- fdivf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdivf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fdivf128
-)
-
-add_fp_unittest(
- ffma_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ffma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffma
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- ffmal_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ffmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffmal
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- ffmaf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ffmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffmaf128
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- fsqrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrt
-)
-
-
-add_fp_unittest(
- fsqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrtl
-)
-
-add_fp_unittest(
- fsqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrtf128
-)
-
-add_fp_unittest(
- fsub_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fsub
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- fsubl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsubl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fsubl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- fsubf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsubf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fsubf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- dsqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dsqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.dsqrtl
-)
-
-add_fp_unittest(
- dsqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dsqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.dsqrtf128
-)
-
-add_fp_unittest(
- sin_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sin_test.cpp
- DEPENDS
- libc.src.math.sin
-)
-
-add_fp_unittest(
- cos_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cos_test.cpp
- DEPENDS
- libc.src.math.cos
-)
-
-add_fp_unittest(
- sincos_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sincos_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sincos
-)
-
-add_fp_unittest(
- tan_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tan_test.cpp
- DEPENDS
- libc.src.math.tan
-)
-
-add_fp_unittest(
- cbrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cbrtf_test.cpp
- DEPENDS
- libc.src.math.cbrtf
-)
-
-add_fp_unittest(
- cbrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cbrt_test.cpp
- DEPENDS
- libc.src.math.cbrt
-)
-
-add_fp_unittest(
- dmull_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dmull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.dmull
-)
-
-add_fp_unittest(
- f16mul_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.f16mul
-)
-
-add_fp_unittest(
- f16mulf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16mulf_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.f16mulf
-)
-
-add_fp_unittest(
- f16mull_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16mull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.f16mull
-)
-
-add_fp_unittest(
- f16mulf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16mulf128_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.f16mulf128
-)
-
-add_fp_unittest(
- daddl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- daddl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.daddl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- daddf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- daddf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.daddf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- ddivl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ddivl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.ddivl
-)
-
-add_fp_unittest(
- ddivf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ddivf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.ddivf128
-)
-
-add_fp_unittest(
- bfloat16_add_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bfloat16_add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.os
- libc.src.__support.macros.properties.types
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
-)
-
-add_fp_unittest(
- bfloat16_div_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bfloat16_div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.__support.FPUtil.bfloat16
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
-)
-
-add_fp_unittest(
- bfloat16_mul_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bfloat16_mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.bfloat16
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
-)
-
-add_fp_unittest(
- bfloat16_sub_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bfloat16_sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.os
- libc.src.__support.macros.properties.types
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
-)
-
-add_fp_unittest(
- add_same_type_test
- SUITE
- libc-math-smoke-tests
- SRCS
- add_same_type_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.os
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- sub_same_type_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sub_same_type_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.os
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- bf16add_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16add
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16addf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16addf_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16addf
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16addl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16addl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16addl
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16addf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16addf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16addf128
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16fma_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16fma
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmaf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16fmaf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmal_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16fmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16fmal
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmaf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16fmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16fmaf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16div_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16div
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16divf_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16divf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16divl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16divl
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16divf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16divf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mul_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16mul
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mulf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16mulf_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16mulf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mull_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16mull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16mull
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mulf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16mulf128_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16mulf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-
-add_fp_unittest(
- bf16sub_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16sub
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16subf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16subf_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16subf
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16subl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16subl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16subl
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16subf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16subf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16subf128
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
+add_custom_target(libc-math-smoke-tests)
+add_dependencies(libc-math-unittests libc-math-smoke-tests)
+
+add_fp_unittest(
+ cosf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cosf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cosf
+)
+
+add_fp_unittest(
+ cosf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cosf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cosf16
+)
+
+add_fp_unittest(
+ cospif_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cospif_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cospif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ cospif16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cospif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cospif16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ sinf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ sinpif_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinpif_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinpif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinpif16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinpif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinpif16
+)
+
+add_fp_unittest(
+ sincosf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sincosf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sincosf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanf16
+)
+
+add_fp_unittest(
+ tanpif_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanpif_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanpif
+)
+
+add_fp_unittest(
+ tanpif16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanpif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanpif16
+)
+
+add_fp_unittest(
+ fabs_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabs_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabs
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsf_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsl_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsf16_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsf16
+)
+
+add_fp_unittest(
+ fabsf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsf128_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsbf16_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.math.fabsbf16
+)
+
+add_fp_unittest(
+ fadd_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fadd_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fadd
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ faddl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ faddl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.faddl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ faddf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ faddf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.faddf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ trunc_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ trunc_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.trunc
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncf_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncl_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncf16_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf16
+)
+
+add_fp_unittest(
+ truncf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncf128_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncbf16_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ canonicalize_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalize_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalize
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizef_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizef_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizef
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizef16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizef16_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizef16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizef128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizef128_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizef128
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizel_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizel_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizel
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizebf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizebf16_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizebf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ iscanonical_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonical_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonical
+)
+
+add_fp_unittest(
+ iscanonicalf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicalf_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicalf
+)
+
+add_fp_unittest(
+ iscanonicall_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicall_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicall
+)
+
+add_fp_unittest(
+ iscanonicalf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicalf16_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicalf16
+)
+
+add_fp_unittest(
+ iscanonicalf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicalf128_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicalf128
+)
+
+add_fp_unittest(
+ iscanonicalbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicalbf16_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicalbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ ceil_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceil_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceil
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceilf_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceill_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceill_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceill
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceilf16_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf16
+)
+
+add_fp_unittest(
+ ceilf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceilf128_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceilbf16_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ dfmal_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dfmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.dfmal
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ dfmaf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dfmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.dfmaf128
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ dsubl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dsubl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.dsubl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ dsubf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dsubf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.dsubf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ floor_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floor_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floor
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorf_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorl_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorf16_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf16
+)
+
+add_fp_unittest(
+ floorf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorf128_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorbf16_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ round_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ round_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.round
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundf_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundl_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundf16_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf16
+)
+
+add_fp_unittest(
+ roundf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundf128_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundbf16_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ roundeven_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundeven_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundeven
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenf_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenl_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenf16_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf16
+)
+
+add_fp_unittest(
+ roundevenf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenf128_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenbf16_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ lround_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lround_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lround
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundf128_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llround_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llround_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llround
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundf128_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rint_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rint_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rint
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintf_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintf
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintl_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintl
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintf16_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintf16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintf128_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintf128
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintbf16_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintbf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrint_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrint_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintf128_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrint_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrint_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintf128_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.expf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.expf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp2_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.exp2f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp2m1f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2m1f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp2m1f
+)
+
+add_fp_unittest(
+ exp2m1f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2m1f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.exp2m1f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp10_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp10
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp10f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp10f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp10f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.exp10f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp10m1f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10m1f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.exp10m1f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp10m1f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10m1f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp10m1f
+)
+
+add_fp_unittest(
+ copysign_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysign_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysign
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignf_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignl_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignf16_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignf128_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignbf16_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ frexp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexp_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexp
+)
+
+add_fp_unittest(
+ frexpf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpf_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpf
+)
+
+add_fp_unittest(
+ frexpl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpl_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpl
+)
+
+add_fp_unittest(
+ frexpf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpf16_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpf16
+)
+
+add_fp_unittest(
+ frexpf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpf128_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpf128
+)
+
+add_fp_unittest(
+ frexpbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpbf16_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ fromfp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfp_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfp
+)
+
+add_fp_unittest(
+ fromfpf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpf_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpf
+)
+
+add_fp_unittest(
+ fromfpl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpl_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpl
+)
+
+add_fp_unittest(
+ fromfpf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpf16_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpf16
+)
+
+add_fp_unittest(
+ fromfpf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpf128_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpf128
+)
+
+add_fp_unittest(
+ fromfpbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpbf16_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ fromfpx_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpx_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpx
+)
+
+add_fp_unittest(
+ fromfpxf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxf_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxf
+)
+
+add_fp_unittest(
+ fromfpxl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxl_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxl
+)
+
+add_fp_unittest(
+ fromfpxf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxf16_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxf16
+)
+
+add_fp_unittest(
+ fromfpxf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxf128_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxf128
+)
+
+add_fp_unittest(
+ fromfpxbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxbf16_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+
+add_fp_unittest(
+ ufromfp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfp_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfp
+)
+
+add_fp_unittest(
+ ufromfpf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpf_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpf
+)
+
+add_fp_unittest(
+ ufromfpl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpl_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpl
+)
+
+add_fp_unittest(
+ ufromfpf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpf16_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpf16
+)
+
+add_fp_unittest(
+ ufromfpf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpf128_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpf128
+)
+
+add_fp_unittest(
+ ufromfpbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpbf16_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ ufromfpx_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpx_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpx
+)
+
+add_fp_unittest(
+ ufromfpxf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxf_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxf
+)
+
+add_fp_unittest(
+ ufromfpxl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxl_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxl
+)
+
+add_fp_unittest(
+ ufromfpxf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxf16_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxf16
+)
+
+add_fp_unittest(
+ ufromfpxf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxf128_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxf128
+)
+
+add_fp_unittest(
+ ufromfpxbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxbf16_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ ilogb_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogb_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogb
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbf_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbl_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbf16_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbf128_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbbf16_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ issignaling_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignaling_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignaling
+)
+
+add_fp_unittest(
+ issignalingf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingf_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingf
+)
+
+add_fp_unittest(
+ issignalingl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingl_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingl
+)
+
+add_fp_unittest(
+ issignalingf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingf16_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingf16
+)
+
+add_fp_unittest(
+ issignalingf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingf128_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingf128
+)
+
+add_fp_unittest(
+ issignalingbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingbf16_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ llogb_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogb_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogb
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbf_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbl_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbf16_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbf128_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbbf16_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ldexp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexp_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexp
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpf_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpl_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpf16_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpf128_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpbf16_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ logb_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logb_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logb
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbf_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbl_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbf16_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbf128_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbbf16_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ modf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modf_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modff_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modff_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modff
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modfl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modfl_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modfl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modff16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modff16_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modff16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modff128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modff128_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modff128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modfbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modfbf16_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modfbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ fdimf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdimf_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdim_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdim_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdim
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdiml_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdiml_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdiml
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdimf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdimf16_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdimf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdimf128_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdimbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdimbf16_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminf_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmin_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmin_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fmin
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminl_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminf128_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminf16_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminbf16_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxf_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmax_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmax_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmax
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxl_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxf128_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxf16_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxbf16_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximuml_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximuml_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximuml
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximumf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximumf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximumf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximumf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximumf128_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximumf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximum
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximumf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximumf_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximumf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numf_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximumbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximumbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximumbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_num_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_num_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_num
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numl_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numf16_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numf128_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magf_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magl_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magf16_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magf128_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numf_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_num_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_num_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_num
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numl_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numl
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numf16_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numf128_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimuml_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimuml_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimuml
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimumf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimumf16_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimumf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimumf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimumf128_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimumf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimum
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimumf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimumf_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimumf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimumbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimumbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fminimumbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numf_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_num_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_num_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_num
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numl_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numf16_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numf128_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magf_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_magf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magl_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_magl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magf16_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_magf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magf128_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_magf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fminimum_magbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numf_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_num_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_num_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_num
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numl_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numf16_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numf128_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmul_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.fmul
+)
+
+add_fp_unittest(
+ fmull_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.fmull
+)
+
+add_fp_unittest(
+ sqrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf
+)
+
+add_fp_unittest(
+ sqrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrt
+)
+
+add_fp_unittest(
+ sqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtl
+)
+
+add_fp_unittest(
+ rsqrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rsqrtf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.rsqrtf
+)
+
+add_fp_unittest(
+ rsqrtf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rsqrtf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.rsqrtf16
+)
+
+add_fp_unittest(
+ sqrtf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtf16_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf16
+)
+
+add_fp_unittest(
+ sqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf128
+)
+
+add_fp_unittest(
+ sqrtbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtbf16_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ generic_sqrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ generic_sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ generic_sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ generic_sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ generic_sqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ # The dependency on sqrtf128 is used to disable the test when float128
+ # support is not available.
+ libc.src.math.sqrtf128
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ remquof_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquof_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquof
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquof128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquof128_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquof128
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquo_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquo_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquo
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquol_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquol_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquol
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquof16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquof16_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquof16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquobf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquobf16_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquobf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypotf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ hypotf_test.cpp
+ HDRS
+ HypotTest.h
+ DEPENDS
+ libc.src.math.hypotf
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.macros.properties.architectures
+)
+
+add_fp_unittest(
+ hypotf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ hypotf16_test.cpp
+ HDRS
+ HypotTest.h
+ DEPENDS
+ libc.src.math.hypotf16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypot_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ hypot_test.cpp
+ HDRS
+ HypotTest.h
+ DEPENDS
+ libc.src.math.hypot
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.macros.properties.architectures
+)
+
+add_fp_unittest(
+ nanf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanf_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanf
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nan_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nan_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nan
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nanl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanl_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanl
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nanf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanf16_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanf16
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nanf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanf128_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanf128
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nanbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanbf16_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanbf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nearbyint_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyint_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyint
+)
+
+add_fp_unittest(
+ nearbyintf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintf_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintf
+)
+
+add_fp_unittest(
+ nearbyintl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintl_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintl
+)
+
+add_fp_unittest(
+ nearbyintf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintf16_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintf16
+)
+
+add_fp_unittest(
+ nearbyintf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintf128_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintf128
+)
+
+add_fp_unittest(
+ nearbyintbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintbf16_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ nextafter_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafter_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafter
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterf_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterf
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterl_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterl
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterf16_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterf16
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterf128_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterf128
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterbf16_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterbf16
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+# FIXME: These tests are currently spurious for the GPU.
+if(NOT LIBC_TARGET_OS_IS_GPU)
+ add_fp_unittest(
+ nexttoward_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttoward_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttoward
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+ )
+
+ add_fp_unittest(
+ nexttowardf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttowardf_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttowardf
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+ )
+endif()
+
+add_fp_unittest(
+ nexttowardl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttowardl_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttowardl
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nexttowardf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttowardf16_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttowardf16
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nexttowardbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttowardbf16_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttowardbf16
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextdown_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdown_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdown
+)
+
+add_fp_unittest(
+ nextdownf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownf_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownf
+)
+
+add_fp_unittest(
+ nextdownl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownl_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownl
+)
+
+add_fp_unittest(
+ nextdownf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownf16_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownf16
+)
+
+add_fp_unittest(
+ nextdownf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownf128_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownf128
+)
+
+add_fp_unittest(
+ nextdownbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownbf16_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ nextup_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextup_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextup
+)
+
+add_fp_unittest(
+ nextupf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupf_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupf
+)
+
+add_fp_unittest(
+ nextupl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupl_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupl
+)
+
+add_fp_unittest(
+ nextupf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupf16_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupf16
+)
+
+add_fp_unittest(
+ nextupf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupf128_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupf128
+)
+
+add_fp_unittest(
+ nextupbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupbf16_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+# TODO(lntue): The current implementation of fputil::general::fma<float> is only
+# correctly rounded for the default rounding mode round-to-nearest tie-to-even.
+add_fp_unittest(
+ fmaf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmaf
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ fmaf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaf16_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmaf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ fmabf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmabf16_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmabf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ fma_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fma
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ expm1_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expm1_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.expm1
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expm1f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.expm1f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expm1f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.expm1f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ log_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ logf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.logf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ logf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.logf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ log_bf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log_bf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.log_bf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ log2_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log2_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log2f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log2f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log2f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log2f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.log2f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ log10_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log10_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log10
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log10f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log10f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log10f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log10f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log10f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.log10f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ log1p_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log1p_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log1p
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log1pf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log1pf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log1pf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmodf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodf_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodf
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmod_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmod_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmod
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmodl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodl_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodl
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmodf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodf16_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodf16
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmodf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodf128_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodf128
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmodbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodbf16_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodbf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ coshf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ coshf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.coshf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ coshf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ coshf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.coshf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ sinhf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinhf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinhf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinhf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.sinhf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ tanhf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanhf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanhf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.tanhf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ atanhf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atanhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.atanhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atanhf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atanhf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.atanhf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ atanpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanpif16_test.cpp
+ DEPENDS
+ libc.src.math.atanpif16
+)
+
+add_fp_unittest(
+ asinhf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asinhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ asinhf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asinhf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinhf16
+)
+
+add_fp_unittest(
+ asinpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinpif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinpif16
+)
+
+add_fp_unittest(
+ acoshf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acoshf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acoshf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ acoshf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acoshf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acoshf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ asinf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asinf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ asin_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asin_test.cpp
+ DEPENDS
+ libc.src.math.asin
+)
+
+add_fp_unittest(
+ asinf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asinf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinf16
+)
+
+add_fp_unittest(
+ acosf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acosf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acosf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ acos_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acos_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.acos
+)
+
+add_fp_unittest(
+ acosf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acosf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acosf16
+)
+
+add_fp_unittest(
+ acospif16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acospif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acospif16
+)
+
+add_fp_unittest(
+ atanf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atanf_test.cpp
+ DEPENDS
+ libc.src.math.atanf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atan_test.cpp
+ DEPENDS
+ libc.src.math.atan
+)
+
+add_fp_unittest(
+ atanf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atanf16_test.cpp
+ DEPENDS
+ libc.src.math.atanf16
+)
+
+add_fp_unittest(
+ atan2f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atan2f_test.cpp
+ DEPENDS
+ libc.src.math.atan2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan2_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atan2_test.cpp
+ DEPENDS
+ libc.src.math.atan2
+)
+
+add_fp_unittest(
+ atan2f128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atan2f128_test.cpp
+ DEPENDS
+ libc.src.math.atan2f128
+)
+
+add_fp_unittest(
+ scalbln_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbln_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbln
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnf_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnf
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnl_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnl
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnf16_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnf16
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnf128_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnf128
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnbf16_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnbf16
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbn_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbn_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbn
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnf_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnl_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnl
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnf16_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf16
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnf128_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf128
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnbf16_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnbf16
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ erff_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ erff_test.cpp
+ DEPENDS
+ libc.src.math.erff
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ pow_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ pow_test.cpp
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.pow
+)
+
+add_fp_unittest(
+ powf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ powf_test.cpp
+ DEPENDS
+ libc.src.math.powf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ totalorder_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorder_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorder
+)
+
+add_fp_unittest(
+ totalorderf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderf_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderf
+)
+
+add_fp_unittest(
+ totalorderl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderl_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderl
+)
+
+add_fp_unittest(
+ totalorderf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderf16_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderf16
+)
+
+add_fp_unittest(
+ totalorderf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderf128_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderf128
+)
+
+add_fp_unittest(
+ totalorderbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderbf16_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ totalordermag_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermag_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermag
+)
+
+add_fp_unittest(
+ totalordermagf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagf_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagf
+)
+
+add_fp_unittest(
+ totalordermagl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagl_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagl
+)
+
+add_fp_unittest(
+ totalordermagf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagf16_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagf16
+)
+
+add_fp_unittest(
+ totalordermagf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagf128_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagf128
+)
+
+add_fp_unittest(
+ totalordermagbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagbf16_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ getpayload_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayload_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayload
+)
+
+add_fp_unittest(
+ getpayloadf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadf_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadf
+)
+
+add_fp_unittest(
+ getpayloadl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadl_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadl
+)
+
+add_fp_unittest(
+ getpayloadf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadf16_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadf16
+)
+
+add_fp_unittest(
+ getpayloadf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadf128_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadf128
+)
+
+add_fp_unittest(
+ getpayloadbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadbf16_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ setpayload_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayload_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayload
+)
+
+add_fp_unittest(
+ setpayloadf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadf_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadf
+)
+
+add_fp_unittest(
+ setpayloadl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadl_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadl
+)
+
+add_fp_unittest(
+ setpayloadf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadf16_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadf16
+)
+
+add_fp_unittest(
+ setpayloadf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadf128_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadf128
+)
+
+add_fp_unittest(
+ setpayloadbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadbf16_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ setpayloadsig_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsig_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsig
+)
+
+add_fp_unittest(
+ setpayloadsigf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigf_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigf
+)
+
+add_fp_unittest(
+ setpayloadsigl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigl_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigl
+)
+
+add_fp_unittest(
+ setpayloadsigf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigf16_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigf16
+)
+
+add_fp_unittest(
+ setpayloadsigf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigf128_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigf128
+)
+
+add_fp_unittest(
+ setpayloadsigbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigbf16_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ f16add_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16add
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16addf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16addf_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16addf
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16addl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16addl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16addl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16addf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16addf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16addf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16sub_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16sub
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16subf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16subf_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16subf
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16subl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16subl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16subl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16subf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16subf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16subf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16div_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16div
+)
+
+add_fp_unittest(
+ f16divf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16divf_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16divf
+)
+
+add_fp_unittest(
+ f16divl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16divl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16divl
+)
+
+add_fp_unittest(
+ f16divf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16divf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16divf128
+)
+
+add_fp_unittest(
+ f16fma_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fma
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ f16fmaf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmaf
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ f16fmal_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16fmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmal
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ f16fmaf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16fmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmaf128
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ f16sqrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrt
+)
+
+add_fp_unittest(
+ f16sqrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtf
+)
+
+add_fp_unittest(
+ f16sqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtl
+)
+
+add_fp_unittest(
+ f16sqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtf128
+)
+
+add_fp_unittest(
+ fdiv_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdiv_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fdiv
+)
+
+add_fp_unittest(
+ fdivl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdivl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fdivl
+)
+
+add_fp_unittest(
+ fdivf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdivf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fdivf128
+)
+
+add_fp_unittest(
+ ffma_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ffma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffma
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ ffmal_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ffmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffmal
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ ffmaf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ffmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffmaf128
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ fsqrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrt
+)
+
+
+add_fp_unittest(
+ fsqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrtl
+)
+
+add_fp_unittest(
+ fsqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrtf128
+)
+
+add_fp_unittest(
+ fsub_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fsub
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ fsubl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsubl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fsubl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ fsubf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsubf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fsubf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ dsqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dsqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.dsqrtl
+)
+
+add_fp_unittest(
+ dsqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dsqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.dsqrtf128
+)
+
+add_fp_unittest(
+ sin_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sin_test.cpp
+ DEPENDS
+ libc.src.math.sin
+)
+
+add_fp_unittest(
+ cos_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cos_test.cpp
+ DEPENDS
+ libc.src.math.cos
+)
+
+add_fp_unittest(
+ sincos_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sincos_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sincos
+)
+
+add_fp_unittest(
+ tan_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tan_test.cpp
+ DEPENDS
+ libc.src.math.tan
+)
+
+add_fp_unittest(
+ cbrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cbrtf_test.cpp
+ DEPENDS
+ libc.src.math.cbrtf
+)
+
+add_fp_unittest(
+ cbrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cbrt_test.cpp
+ DEPENDS
+ libc.src.math.cbrt
+)
+
+add_fp_unittest(
+ dmull_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dmull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.dmull
+)
+
+add_fp_unittest(
+ f16mul_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.f16mul
+)
+
+add_fp_unittest(
+ f16mulf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16mulf_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.f16mulf
+)
+
+add_fp_unittest(
+ f16mull_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16mull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.f16mull
+)
+
+add_fp_unittest(
+ f16mulf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16mulf128_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.f16mulf128
+)
+
+add_fp_unittest(
+ daddl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ daddl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.daddl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ daddf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ daddf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.daddf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ ddivl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ddivl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.ddivl
+)
+
+add_fp_unittest(
+ ddivf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ddivf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.ddivf128
+)
+
+add_fp_unittest(
+ bfloat16_add_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bfloat16_add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.os
+ libc.src.__support.macros.properties.types
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+)
+
+add_fp_unittest(
+ bfloat16_div_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bfloat16_div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.bfloat16
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+)
+
+add_fp_unittest(
+ bfloat16_mul_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bfloat16_mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.bfloat16
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+)
+
+add_fp_unittest(
+ bfloat16_sub_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bfloat16_sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.os
+ libc.src.__support.macros.properties.types
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+)
+
+add_fp_unittest(
+ add_same_type_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ add_same_type_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.os
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ sub_same_type_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sub_same_type_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.os
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ bf16add_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16add
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16addf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16addf_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16addf
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16addl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16addl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16addl
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16addf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16addf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16addf128
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16fma_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16fma
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmaf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16fmaf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmal_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16fmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16fmal
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmaf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16fmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16fmaf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16div_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16div
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16divf_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16divf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16divl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16divl
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16divf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16divf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mul_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16mul
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mulf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16mulf_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16mulf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mull_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16mull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16mull
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mulf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16mulf128_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16mulf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+
+add_fp_unittest(
+ bf16sub_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16sub
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16subf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16subf_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16subf
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16subl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16subl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16subl
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16subf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16subf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16subf128
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
diff --git a/libc/test/src/math/smoke/fmabf16_test.cpp b/libc/test/src/math/smoke/fmabf16_test.cpp
new file mode 100644
index 0000000000000..4b1ececf40d74
--- /dev/null
+++ b/libc/test/src/math/smoke/fmabf16_test.cpp
@@ -0,0 +1,14 @@
+//===-- Unittests for fmabf16 ---------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "FmaTest.h"
+
+#include "src/__support/FPUtil/bfloat16.h"
+#include "src/math/fmabf16.h"
+
+LIST_FMA_TESTS(bfloat16, LIBC_NAMESPACE::fmabf16)
>From 5b97d5f108b5ae1f1c31edfce6611a44997e9438 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 9 Feb 2026 18:41:54 +0530
Subject: [PATCH 02/43] crlf->lf 1
---
libc/config/baremetal/aarch64/entrypoints.txt | 1866 ++++++++--------
libc/config/baremetal/arm/entrypoints.txt | 1888 ++++++++---------
2 files changed, 1877 insertions(+), 1877 deletions(-)
diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt
index a8ed932da0fe3..7f5e787d843ba 100644
--- a/libc/config/baremetal/aarch64/entrypoints.txt
+++ b/libc/config/baremetal/aarch64/entrypoints.txt
@@ -1,933 +1,933 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdio.h entrypoints
- libc.src.stdio.asprintf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fprintf
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fscanf
- libc.src.stdio.fwrite
- libc.src.stdio.getchar
- libc.src.stdio.printf
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.scanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vasprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.vfscanf
- libc.src.stdio.vprintf
- libc.src.stdio.vscanf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vsscanf
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.a64l
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.calloc
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.free
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.malloc
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.realloc
- libc.src.stdlib.srand
- # libc.src.stdlib.strfromd
- # libc.src.stdlib.strfromf
- # libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.clock
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.difftime
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.localtime
- libc.src.time.localtime_r
- libc.src.time.mktime
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.timespec_get
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # internal entrypoints
- libc.startup.baremetal.init
- libc.startup.baremetal.fini
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- # libc.src.math.atan2l
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdio.h entrypoints
+ libc.src.stdio.asprintf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fprintf
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fscanf
+ libc.src.stdio.fwrite
+ libc.src.stdio.getchar
+ libc.src.stdio.printf
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.scanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vscanf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vsscanf
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.calloc
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.free
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.malloc
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.realloc
+ libc.src.stdlib.srand
+ # libc.src.stdlib.strfromd
+ # libc.src.stdlib.strfromf
+ # libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.clock
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.difftime
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.localtime
+ libc.src.time.localtime_r
+ libc.src.time.mktime
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.timespec_get
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # internal entrypoints
+ libc.startup.baremetal.init
+ libc.startup.baremetal.fini
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ # libc.src.math.atan2l
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt
index a04400f815fe7..8f0a3f4a60f4c 100644
--- a/libc/config/baremetal/arm/entrypoints.txt
+++ b/libc/config/baremetal/arm/entrypoints.txt
@@ -1,944 +1,944 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdio.h entrypoints
- libc.src.stdio.asprintf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fprintf
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fscanf
- libc.src.stdio.fwrite
- libc.src.stdio.getchar
- libc.src.stdio.printf
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.scanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vasprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.vfscanf
- libc.src.stdio.vprintf
- libc.src.stdio.vscanf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vsscanf
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.a64l
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.calloc
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.free
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.malloc
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.realloc
- libc.src.stdlib.srand
- # libc.src.stdlib.strfromd
- # libc.src.stdlib.strfromf
- # libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.clock
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.difftime
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.localtime
- libc.src.time.localtime_r
- libc.src.time.mktime
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.timespec_get
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # internal entrypoints
- libc.startup.baremetal.init
- libc.startup.baremetal.fini
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan2l
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- libc.src.stdfix.idivr
- libc.src.stdfix.idivlr
- libc.src.stdfix.idivk
- libc.src.stdfix.idivlk
- libc.src.stdfix.idivur
- libc.src.stdfix.idivulr
- libc.src.stdfix.idivuk
- libc.src.stdfix.idivulk
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdio.h entrypoints
+ libc.src.stdio.asprintf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fprintf
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fscanf
+ libc.src.stdio.fwrite
+ libc.src.stdio.getchar
+ libc.src.stdio.printf
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.scanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vscanf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vsscanf
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.calloc
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.free
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.malloc
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.realloc
+ libc.src.stdlib.srand
+ # libc.src.stdlib.strfromd
+ # libc.src.stdlib.strfromf
+ # libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.clock
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.difftime
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.localtime
+ libc.src.time.localtime_r
+ libc.src.time.mktime
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.timespec_get
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # internal entrypoints
+ libc.startup.baremetal.init
+ libc.startup.baremetal.fini
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan2l
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ libc.src.stdfix.idivr
+ libc.src.stdfix.idivlr
+ libc.src.stdfix.idivk
+ libc.src.stdfix.idivlk
+ libc.src.stdfix.idivur
+ libc.src.stdfix.idivulr
+ libc.src.stdfix.idivuk
+ libc.src.stdfix.idivulk
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
>From 868c4689fec2aadb32c40d75f39df506936c5d25 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 9 Feb 2026 18:46:46 +0530
Subject: [PATCH 03/43] crlf-lf 2
---
libc/config/baremetal/riscv/entrypoints.txt | 1884 ++++++-------
libc/config/darwin/aarch64/entrypoints.txt | 1496 +++++-----
libc/config/darwin/x86_64/entrypoints.txt | 622 ++--
libc/config/gpu/amdgpu/entrypoints.txt | 1388 ++++-----
libc/config/gpu/nvptx/entrypoints.txt | 1392 ++++-----
libc/config/linux/aarch64/entrypoints.txt | 2370 ++++++++--------
libc/config/linux/arm/entrypoints.txt | 1076 +++----
libc/config/linux/riscv/entrypoints.txt | 2664 +++++++++---------
libc/config/linux/x86_64/entrypoints.txt | 2806 +++++++++----------
libc/config/windows/entrypoints.txt | 770 ++---
10 files changed, 8234 insertions(+), 8234 deletions(-)
diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt
index 7cad3f33c2980..88c8f8d036669 100644
--- a/libc/config/baremetal/riscv/entrypoints.txt
+++ b/libc/config/baremetal/riscv/entrypoints.txt
@@ -1,942 +1,942 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # setjmp.h entrypoints
- # libc.src.setjmp.longjmp
- # libc.src.setjmp.setjmp
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdio.h entrypoints
- libc.src.stdio.asprintf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fprintf
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fscanf
- libc.src.stdio.fwrite
- libc.src.stdio.getchar
- libc.src.stdio.printf
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.scanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vasprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.vfscanf
- libc.src.stdio.vprintf
- libc.src.stdio.vscanf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vsscanf
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.a64l
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.calloc
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.free
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.malloc
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.realloc
- libc.src.stdlib.srand
- # libc.src.stdlib.strfromd
- # libc.src.stdlib.strfromf
- # libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.clock
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.difftime
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.localtime
- libc.src.time.localtime_r
- libc.src.time.mktime
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.timespec_get
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # internal entrypoints
- libc.startup.baremetal.init
- libc.startup.baremetal.fini
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- # libc.src.math.atan2l
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- # libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- # libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- libc.src.stdfix.idivr
- libc.src.stdfix.idivlr
- libc.src.stdfix.idivk
- libc.src.stdfix.idivlk
- libc.src.stdfix.idivur
- libc.src.stdfix.idivulr
- libc.src.stdfix.idivuk
- libc.src.stdfix.idivulk
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # setjmp.h entrypoints
+ # libc.src.setjmp.longjmp
+ # libc.src.setjmp.setjmp
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdio.h entrypoints
+ libc.src.stdio.asprintf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fprintf
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fscanf
+ libc.src.stdio.fwrite
+ libc.src.stdio.getchar
+ libc.src.stdio.printf
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.scanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vscanf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vsscanf
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.calloc
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.free
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.malloc
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.realloc
+ libc.src.stdlib.srand
+ # libc.src.stdlib.strfromd
+ # libc.src.stdlib.strfromf
+ # libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.clock
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.difftime
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.localtime
+ libc.src.time.localtime_r
+ libc.src.time.mktime
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.timespec_get
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # internal entrypoints
+ libc.startup.baremetal.init
+ libc.startup.baremetal.fini
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ # libc.src.math.atan2l
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ # libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ # libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ libc.src.stdfix.idivr
+ libc.src.stdfix.idivlr
+ libc.src.stdfix.idivk
+ libc.src.stdfix.idivlk
+ libc.src.stdfix.idivur
+ libc.src.stdfix.idivulr
+ libc.src.stdfix.idivuk
+ libc.src.stdfix.idivulk
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt
index 6aceca7d31e1e..3aeb6fb5ae541 100644
--- a/libc/config/darwin/aarch64/entrypoints.txt
+++ b/libc/config/darwin/aarch64/entrypoints.txt
@@ -1,748 +1,748 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
-
- # string.h entrypoints that depend on malloc
- libc.src.string.strdup
- libc.src.string.strndup
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atoi
- libc.src.stdlib.atof
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.malloc
- libc.src.stdlib.calloc
- libc.src.stdlib.realloc
- libc.src.stdlib.free
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-)
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
- libc.src.stdlib._Exit
- )
-endif()
-
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+
+ # string.h entrypoints that depend on malloc
+ libc.src.string.strdup
+ libc.src.string.strndup
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atof
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.malloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.realloc
+ libc.src.stdlib.free
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+)
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+ libc.src.stdlib._Exit
+ )
+endif()
+
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt
index d27510602df62..13e92f75d020f 100644
--- a/libc/config/darwin/x86_64/entrypoints.txt
+++ b/libc/config/darwin/x86_64/entrypoints.txt
@@ -1,311 +1,311 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # search.h entrypoints
- libc.src.search.lfind
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
-
- # string.h entrypoints that depend on malloc
- libc.src.string.strdup
- libc.src.string.strndup
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bzero
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atoi
- libc.src.stdlib.atof
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.malloc
- libc.src.stdlib.calloc
- libc.src.stdlib.realloc
- libc.src.stdlib.free
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # fenv disabled on x86_64 MacOS for now.
- # # fenv.h entrypoints
- # libc.src.fenv.feclearexcept
- # libc.src.fenv.fedisableexcept
- # libc.src.fenv.feenableexcept
- # libc.src.fenv.fegetenv
- # libc.src.fenv.fegetexcept
- # libc.src.fenv.fegetexceptflag
- # libc.src.fenv.fegetround
- # libc.src.fenv.feholdexcept
- # libc.src.fenv.fesetenv
- # libc.src.fenv.fesetexcept
- # libc.src.fenv.fesetexceptflag
- # libc.src.fenv.fesetround
- # libc.src.fenv.feraiseexcept
- # libc.src.fenv.fetestexcept
- # libc.src.fenv.fetestexceptflag
- # libc.src.fenv.feupdateenv
-
- ## Currently disabled for failing tests.
- # math.h entrypoints
- #libc.src.math.copysign
- #libc.src.math.copysignf
- #libc.src.math.copysignl
- #libc.src.math.ceil
- #libc.src.math.ceilf
- #libc.src.math.ceill
- #libc.src.math.coshf
- #libc.src.math.cosf
- #libc.src.math.daddl
- #libc.src.math.ddivl
- #libc.src.math.dfmal
- #libc.src.math.dsqrtl
- #libc.src.math.dsubl
- #libc.src.math.expf
- #libc.src.math.exp2f
- #libc.src.math.expm1f
- #libc.src.math.fabs
- #libc.src.math.fabsf
- #libc.src.math.fabsl
- #libc.src.math.fdim
- #libc.src.math.fdimf
- #libc.src.math.fdiml
- #libc.src.math.fdiv
- #libc.src.math.fdivl
- #libc.src.math.ffma
- #libc.src.math.ffmal
- #libc.src.math.floor
- #libc.src.math.floorf
- #libc.src.math.floorl
- #libc.src.math.fma
- #libc.src.math.fmabf16
- #libc.src.math.fmaf
- #libc.src.math.fmax
- #libc.src.math.fmaxf
- #libc.src.math.fmaxl
- #libc.src.math.fmin
- #libc.src.math.fminf
- #libc.src.math.fminl
- #libc.src.math.fmod
- #libc.src.math.fmodf
- #libc.src.math.frexp
- #libc.src.math.frexpf
- #libc.src.math.frexpl
- #libc.src.math.fsub
- #libc.src.math.fsubl
- #libc.src.math.hypot
- #libc.src.math.hypotf
- #libc.src.math.ilogb
- #libc.src.math.ilogbf
- #libc.src.math.ilogbl
- #libc.src.math.llrint
- #libc.src.math.llrintf
- #libc.src.math.llrintl
- #libc.src.math.llround
- #libc.src.math.llroundf
- #libc.src.math.llroundl
- #libc.src.math.lrint
- #libc.src.math.lrintf
- #libc.src.math.lrintl
- #libc.src.math.lround
- #libc.src.math.lroundf
- #libc.src.math.lroundl
- #libc.src.math.ldexp
- #libc.src.math.ldexpf
- #libc.src.math.ldexpl
- #libc.src.math.log10f
- #libc.src.math.log1pf
- #libc.src.math.log2f
- #libc.src.math.logf
- #libc.src.math.logb
- #libc.src.math.logbf
- #libc.src.math.logbl
- #libc.src.math.modf
- #libc.src.math.modff
- #libc.src.math.modfl
- #libc.src.math.nan
- #libc.src.math.nanf
- #libc.src.math.nanl
- #libc.src.math.nearbyint
- #libc.src.math.nearbyintf
- #libc.src.math.nearbyintl
- #libc.src.math.nextafter
- #libc.src.math.nextafterf
- #libc.src.math.nextafterl
- #libc.src.math.nexttoward
- #libc.src.math.nexttowardf
- #libc.src.math.nexttowardl
- #libc.src.math.remainderf
- #libc.src.math.remainder
- #libc.src.math.remainderl
- #libc.src.math.remquof
- #libc.src.math.remquo
- #libc.src.math.remquol
- #libc.src.math.rint
- #libc.src.math.rintf
- #libc.src.math.rintl
- #libc.src.math.round
- #libc.src.math.roundf
- #libc.src.math.roundl
- #libc.src.math.sincosf
- #libc.src.math.sinhf
- #libc.src.math.sinf
- #libc.src.math.sqrt
- #libc.src.math.sqrtf
- #libc.src.math.sqrtl
- #libc.src.math.tanf
- #libc.src.math.tanhf
- #libc.src.math.totalordermag
- #libc.src.math.totalordermagf
- #libc.src.math.totalordermagl
- #libc.src.math.trunc
- #libc.src.math.truncf
- #libc.src.math.truncl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # search.h entrypoints
+ libc.src.search.lfind
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+
+ # string.h entrypoints that depend on malloc
+ libc.src.string.strdup
+ libc.src.string.strndup
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bzero
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atof
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.malloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.realloc
+ libc.src.stdlib.free
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # fenv disabled on x86_64 MacOS for now.
+ # # fenv.h entrypoints
+ # libc.src.fenv.feclearexcept
+ # libc.src.fenv.fedisableexcept
+ # libc.src.fenv.feenableexcept
+ # libc.src.fenv.fegetenv
+ # libc.src.fenv.fegetexcept
+ # libc.src.fenv.fegetexceptflag
+ # libc.src.fenv.fegetround
+ # libc.src.fenv.feholdexcept
+ # libc.src.fenv.fesetenv
+ # libc.src.fenv.fesetexcept
+ # libc.src.fenv.fesetexceptflag
+ # libc.src.fenv.fesetround
+ # libc.src.fenv.feraiseexcept
+ # libc.src.fenv.fetestexcept
+ # libc.src.fenv.fetestexceptflag
+ # libc.src.fenv.feupdateenv
+
+ ## Currently disabled for failing tests.
+ # math.h entrypoints
+ #libc.src.math.copysign
+ #libc.src.math.copysignf
+ #libc.src.math.copysignl
+ #libc.src.math.ceil
+ #libc.src.math.ceilf
+ #libc.src.math.ceill
+ #libc.src.math.coshf
+ #libc.src.math.cosf
+ #libc.src.math.daddl
+ #libc.src.math.ddivl
+ #libc.src.math.dfmal
+ #libc.src.math.dsqrtl
+ #libc.src.math.dsubl
+ #libc.src.math.expf
+ #libc.src.math.exp2f
+ #libc.src.math.expm1f
+ #libc.src.math.fabs
+ #libc.src.math.fabsf
+ #libc.src.math.fabsl
+ #libc.src.math.fdim
+ #libc.src.math.fdimf
+ #libc.src.math.fdiml
+ #libc.src.math.fdiv
+ #libc.src.math.fdivl
+ #libc.src.math.ffma
+ #libc.src.math.ffmal
+ #libc.src.math.floor
+ #libc.src.math.floorf
+ #libc.src.math.floorl
+ #libc.src.math.fma
+ #libc.src.math.fmabf16
+ #libc.src.math.fmaf
+ #libc.src.math.fmax
+ #libc.src.math.fmaxf
+ #libc.src.math.fmaxl
+ #libc.src.math.fmin
+ #libc.src.math.fminf
+ #libc.src.math.fminl
+ #libc.src.math.fmod
+ #libc.src.math.fmodf
+ #libc.src.math.frexp
+ #libc.src.math.frexpf
+ #libc.src.math.frexpl
+ #libc.src.math.fsub
+ #libc.src.math.fsubl
+ #libc.src.math.hypot
+ #libc.src.math.hypotf
+ #libc.src.math.ilogb
+ #libc.src.math.ilogbf
+ #libc.src.math.ilogbl
+ #libc.src.math.llrint
+ #libc.src.math.llrintf
+ #libc.src.math.llrintl
+ #libc.src.math.llround
+ #libc.src.math.llroundf
+ #libc.src.math.llroundl
+ #libc.src.math.lrint
+ #libc.src.math.lrintf
+ #libc.src.math.lrintl
+ #libc.src.math.lround
+ #libc.src.math.lroundf
+ #libc.src.math.lroundl
+ #libc.src.math.ldexp
+ #libc.src.math.ldexpf
+ #libc.src.math.ldexpl
+ #libc.src.math.log10f
+ #libc.src.math.log1pf
+ #libc.src.math.log2f
+ #libc.src.math.logf
+ #libc.src.math.logb
+ #libc.src.math.logbf
+ #libc.src.math.logbl
+ #libc.src.math.modf
+ #libc.src.math.modff
+ #libc.src.math.modfl
+ #libc.src.math.nan
+ #libc.src.math.nanf
+ #libc.src.math.nanl
+ #libc.src.math.nearbyint
+ #libc.src.math.nearbyintf
+ #libc.src.math.nearbyintl
+ #libc.src.math.nextafter
+ #libc.src.math.nextafterf
+ #libc.src.math.nextafterl
+ #libc.src.math.nexttoward
+ #libc.src.math.nexttowardf
+ #libc.src.math.nexttowardl
+ #libc.src.math.remainderf
+ #libc.src.math.remainder
+ #libc.src.math.remainderl
+ #libc.src.math.remquof
+ #libc.src.math.remquo
+ #libc.src.math.remquol
+ #libc.src.math.rint
+ #libc.src.math.rintf
+ #libc.src.math.rintl
+ #libc.src.math.round
+ #libc.src.math.roundf
+ #libc.src.math.roundl
+ #libc.src.math.sincosf
+ #libc.src.math.sinhf
+ #libc.src.math.sinf
+ #libc.src.math.sqrt
+ #libc.src.math.sqrtf
+ #libc.src.math.sqrtl
+ #libc.src.math.tanf
+ #libc.src.math.tanhf
+ #libc.src.math.totalordermag
+ #libc.src.math.totalordermagf
+ #libc.src.math.totalordermagl
+ #libc.src.math.trunc
+ #libc.src.math.truncf
+ #libc.src.math.truncl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt
index 9ab7d517cf57c..01a7fc56a2d8d 100644
--- a/libc/config/gpu/amdgpu/entrypoints.txt
+++ b/libc/config/gpu/amdgpu/entrypoints.txt
@@ -1,694 +1,694 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha
- libc.src.ctype.isalpha_l
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower
- libc.src.ctype.islower_l
- libc.src.ctype.isprint
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit
- libc.src.ctype.isxdigit_l
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper
- libc.src.ctype.toupper_l
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcoll_l
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strtod
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull
- libc.src.stdlib.strtoull_l
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.quick_exit
- libc.src.stdlib.getenv
- libc.src.stdlib.system
-
- # TODO: Implement these correctly
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.fclose
- libc.src.stdio.printf
- libc.src.stdio.vprintf
- libc.src.stdio.fprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.asprintf
- libc.src.stdio.vasprintf
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fopen
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fseek
- libc.src.stdio.ftell
- libc.src.stdio.fwrite
- libc.src.stdio.getc
- libc.src.stdio.getchar
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # time.h entrypoints
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.timespec_get
- libc.src.time.nanosleep
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.mktime
-
- # wchar.h entrypoints
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan2l
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.lgamma
- libc.src.math.lgamma_r
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.round
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.tgamma
- libc.src.math.tgammaf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.acospif16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.atanf16
- libc.src.math.atanhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- # libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper
+ libc.src.ctype.toupper_l
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcoll_l
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull
+ libc.src.stdlib.strtoull_l
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.quick_exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.system
+
+ # TODO: Implement these correctly
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.fclose
+ libc.src.stdio.printf
+ libc.src.stdio.vprintf
+ libc.src.stdio.fprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fopen
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fseek
+ libc.src.stdio.ftell
+ libc.src.stdio.fwrite
+ libc.src.stdio.getc
+ libc.src.stdio.getchar
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # time.h entrypoints
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.timespec_get
+ libc.src.time.nanosleep
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.mktime
+
+ # wchar.h entrypoints
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan2l
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.lgamma
+ libc.src.math.lgamma_r
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.round
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.tgamma
+ libc.src.math.tgammaf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.acospif16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.atanf16
+ libc.src.math.atanhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ # libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt
index b997d3eb3b26a..331694e64fc8d 100644
--- a/libc/config/gpu/nvptx/entrypoints.txt
+++ b/libc/config/gpu/nvptx/entrypoints.txt
@@ -1,696 +1,696 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha
- libc.src.ctype.isalpha_l
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower
- libc.src.ctype.islower_l
- libc.src.ctype.isprint
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit
- libc.src.ctype.isxdigit_l
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper
- libc.src.ctype.toupper_l
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcoll_l
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.abs
- libc.src.stdlib.atexit
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.exit
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strtod
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull
- libc.src.stdlib.strtoull_l
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.quick_exit
- libc.src.stdlib.getenv
- libc.src.stdlib.system
-
- # TODO: Implement these correctly
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.fclose
- libc.src.stdio.printf
- libc.src.stdio.vprintf
- libc.src.stdio.fprintf
- libc.src.stdio.vfprintf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.asprintf
- libc.src.stdio.vasprintf
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.feof
- libc.src.stdio.ferror
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgets
- libc.src.stdio.fopen
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fseek
- libc.src.stdio.ftell
- libc.src.stdio.fwrite
- libc.src.stdio.getc
- libc.src.stdio.getchar
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # time.h entrypoints
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.timespec_get
- libc.src.time.nanosleep
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.mktime
-
- # wchar.h entrypoints
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan2l
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- # FIXME: Broken.
- # libc.src.math.fromfp
- # libc.src.math.fromfpf
- # libc.src.math.fromfpl
- # libc.src.math.fromfpx
- # libc.src.math.fromfpxf
- # libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.lgamma
- libc.src.math.lgamma_r
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.round
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.tgamma
- libc.src.math.tgammaf
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- # FIXME: Broken.
- # libc.src.math.ufromfp
- # libc.src.math.ufromfpf
- # libc.src.math.ufromfpl
- # libc.src.math.ufromfpx
- # libc.src.math.ufromfpxf
- # libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.acospif16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.atanf16
- libc.src.math.atanhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper
+ libc.src.ctype.toupper_l
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcoll_l
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.abs
+ libc.src.stdlib.atexit
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.exit
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull
+ libc.src.stdlib.strtoull_l
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.quick_exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.system
+
+ # TODO: Implement these correctly
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.fclose
+ libc.src.stdio.printf
+ libc.src.stdio.vprintf
+ libc.src.stdio.fprintf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.vasprintf
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.feof
+ libc.src.stdio.ferror
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgets
+ libc.src.stdio.fopen
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fseek
+ libc.src.stdio.ftell
+ libc.src.stdio.fwrite
+ libc.src.stdio.getc
+ libc.src.stdio.getchar
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # time.h entrypoints
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.timespec_get
+ libc.src.time.nanosleep
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.mktime
+
+ # wchar.h entrypoints
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan2l
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ # FIXME: Broken.
+ # libc.src.math.fromfp
+ # libc.src.math.fromfpf
+ # libc.src.math.fromfpl
+ # libc.src.math.fromfpx
+ # libc.src.math.fromfpxf
+ # libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.lgamma
+ libc.src.math.lgamma_r
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.round
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.tgamma
+ libc.src.math.tgammaf
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ # FIXME: Broken.
+ # libc.src.math.ufromfp
+ # libc.src.math.ufromfpf
+ # libc.src.math.ufromfpl
+ # libc.src.math.ufromfpx
+ # libc.src.math.ufromfpxf
+ # libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.acospif16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.atanf16
+ libc.src.math.atanhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index ff9579c840f92..5373acd9eeb05 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -1,1185 +1,1185 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # dlfcn.h entrypoints
- libc.src.dlfcn.dlclose
- libc.src.dlfcn.dlerror
- libc.src.dlfcn.dlopen
- libc.src.dlfcn.dlsym
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # fcntl.h entrypoints
- libc.src.fcntl.creat
- libc.src.fcntl.fcntl
- libc.src.fcntl.open
- libc.src.fcntl.openat
-
- # poll.h entrypoints
- libc.src.poll.poll
-
- # sched.h entrypoints
- libc.src.sched.sched_get_priority_max
- libc.src.sched.sched_get_priority_min
- libc.src.sched.sched_getaffinity
- libc.src.sched.sched_getparam
- libc.src.sched.sched_getscheduler
- libc.src.sched.sched_rr_get_interval
- libc.src.sched.sched_setaffinity
- libc.src.sched.sched_setparam
- libc.src.sched.sched_setscheduler
- libc.src.sched.sched_yield
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strsignal
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strfromd
- libc.src.stdlib.strfromf
- # TODO: long double support is buggy with clang-11. Re-enable when buildbots are upgraded.
- # libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # stdio.h entrypoints
- libc.src.stdio.fprintf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.printf
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.asprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.vfprintf
- libc.src.stdio.vprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vasprintf
-
- # sys/epoll.h entrypoints
- libc.src.sys.epoll.epoll_create
- libc.src.sys.epoll.epoll_create1
- libc.src.sys.epoll.epoll_ctl
- libc.src.sys.epoll.epoll_pwait
- libc.src.sys.epoll.epoll_wait
- # TODO: Need to check if pwait2 is available before providing.
- # https://github.com/llvm/llvm-project/issues/80060
- # libc.src.sys.epoll.epoll_pwait2
-
- # sys/ioctl.h entrypoints
- libc.src.sys.ioctl.ioctl
-
- # sys/mman.h entrypoints
- libc.src.sys.mman.madvise
- libc.src.sys.mman.mincore
- libc.src.sys.mman.mlock
- libc.src.sys.mman.mlock2
- libc.src.sys.mman.mlockall
- libc.src.sys.mman.mmap
- libc.src.sys.mman.mremap
- libc.src.sys.mman.mprotect
- libc.src.sys.mman.msync
- libc.src.sys.mman.munlock
- libc.src.sys.mman.munlockall
- libc.src.sys.mman.munmap
- libc.src.sys.mman.remap_file_pages
- libc.src.sys.mman.posix_madvise
- libc.src.sys.mman.shm_open
- libc.src.sys.mman.shm_unlink
-
- # sys/random.h entrypoints
- libc.src.sys.random.getrandom
-
- # sys/resource.h entrypoints
- libc.src.sys.resource.getrlimit
- libc.src.sys.resource.setrlimit
-
- # sys/sendfile entrypoints
- libc.src.sys.sendfile.sendfile
-
- # sys/stat.h entrypoints
- libc.src.sys.stat.chmod
- libc.src.sys.stat.fchmod
- libc.src.sys.stat.fchmodat
- libc.src.sys.stat.fstat
- libc.src.sys.stat.lstat
- libc.src.sys.stat.mkdir
- libc.src.sys.stat.mkdirat
- libc.src.sys.stat.stat
-
- # sys/statvfs.h
- libc.src.sys.statvfs.fstatvfs
- libc.src.sys.statvfs.statvfs
-
- # sys/utsname.h entrypoints
- libc.src.sys.utsname.uname
-
- # sys/wait.h entrypoints
- libc.src.sys.wait.wait
- libc.src.sys.wait.wait4
- libc.src.sys.wait.waitpid
-
- # sys/prctl.h entrypoints
- libc.src.sys.prctl.prctl
-
- # sys/auxv.h entrypoints
- libc.src.sys.auxv.getauxval
-
- # termios.h entrypoints
- libc.src.termios.cfgetispeed
- libc.src.termios.cfgetospeed
- libc.src.termios.cfsetispeed
- libc.src.termios.cfsetospeed
- libc.src.termios.tcdrain
- libc.src.termios.tcflow
- libc.src.termios.tcflush
- libc.src.termios.tcgetattr
- libc.src.termios.tcgetsid
- libc.src.termios.tcsendbreak
- libc.src.termios.tcsetattr
-
- # unistd.h entrypoints
- libc.src.unistd.access
- libc.src.unistd.chdir
- libc.src.unistd.close
- libc.src.unistd.dup
- libc.src.unistd.dup2
- libc.src.unistd.dup3
- libc.src.unistd.execve
- libc.src.unistd.faccessat
- libc.src.unistd.fchdir
- libc.src.unistd.fchown
- libc.src.unistd.fpathconf
- libc.src.unistd.fsync
- libc.src.unistd.ftruncate
- libc.src.unistd.getcwd
- libc.src.unistd.getentropy
- libc.src.unistd.geteuid
- libc.src.unistd.gethostname
- libc.src.unistd.getpagesize
- libc.src.unistd.getpid
- libc.src.unistd.getppid
- libc.src.unistd.getsid
- libc.src.unistd.gettid
- libc.src.unistd.getuid
- libc.src.unistd.isatty
- libc.src.unistd.link
- libc.src.unistd.linkat
- libc.src.unistd.lseek
- libc.src.unistd.pathconf
- libc.src.unistd.pipe
- libc.src.unistd.pipe2
- libc.src.unistd.pread
- libc.src.unistd.pwrite
- libc.src.unistd.read
- libc.src.unistd.readlink
- libc.src.unistd.readlinkat
- libc.src.unistd.rmdir
- libc.src.unistd.setsid
- libc.src.unistd.symlink
- libc.src.unistd.symlinkat
- libc.src.unistd.sysconf
- libc.src.unistd.truncate
- libc.src.unistd.unlink
- libc.src.unistd.unlinkat
- libc.src.unistd.write
-
- # wchar.h entrypoints
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # sys/uio.h entrypoints
- libc.src.sys.uio.writev
- libc.src.sys.uio.readv
-
- # sys/time.h entrypoints
- libc.src.sys.time.setitimer
- libc.src.sys.time.getitimer
-)
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # malloc.h external entrypoints
- libc.src.stdlib.mallopt
- )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acoshf16
- libc.src.math.asinpif16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cospif16
- libc.src.math.expf16
- libc.src.math.f16add
- libc.src.math.f16addf
- # libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- # libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- # libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- # libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- # libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- # libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- # libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.logbf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- # libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- # Temporarily disable nexttowardf16 on aarch64 because the conversion
- # between _Float16 and long double will crash clang-11. This is fixed in
- # clang-12 and after: https://godbolt.org/z/8ceT9454c
- # libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.rsqrtf
- libc.src.math.rsqrtf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- # if(LIBC_TYPES_HAS_FLOAT128)
- # list(APPEND TARGET_LIBM_ENTRYPOINTS
- # # math.h C23 mixed _Float16 and _Float128 entrypoints
- # libc.src.math.f16addf128
- # libc.src.math.f16divf128
- # libc.src.math.f16fmaf128
- # libc.src.math.f16mulf128
- # libc.src.math.f16sqrtf128
- # libc.src.math.f16subf128
- # )
- # endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # dirent.h entrypoints
- libc.src.dirent.closedir
- libc.src.dirent.dirfd
- libc.src.dirent.opendir
- libc.src.dirent.readdir
-
- # arpa/inet.h entrypoints
- libc.src.arpa.inet.htonl
- libc.src.arpa.inet.htons
- libc.src.arpa.inet.inet_addr
- libc.src.arpa.inet.inet_aton
- libc.src.arpa.inet.ntohl
- libc.src.arpa.inet.ntohs
-
- # pthread.h entrypoints
- libc.src.pthread.pthread_atfork
- libc.src.pthread.pthread_attr_destroy
- libc.src.pthread.pthread_attr_getdetachstate
- libc.src.pthread.pthread_attr_getguardsize
- libc.src.pthread.pthread_attr_getstack
- libc.src.pthread.pthread_attr_getstacksize
- libc.src.pthread.pthread_attr_init
- libc.src.pthread.pthread_attr_setdetachstate
- libc.src.pthread.pthread_attr_setguardsize
- libc.src.pthread.pthread_attr_setstack
- libc.src.pthread.pthread_attr_setstacksize
- libc.src.pthread.pthread_condattr_destroy
- libc.src.pthread.pthread_condattr_getclock
- libc.src.pthread.pthread_condattr_getpshared
- libc.src.pthread.pthread_condattr_init
- libc.src.pthread.pthread_condattr_setclock
- libc.src.pthread.pthread_condattr_setpshared
- libc.src.pthread.pthread_create
- libc.src.pthread.pthread_detach
- libc.src.pthread.pthread_equal
- libc.src.pthread.pthread_exit
- libc.src.pthread.pthread_getname_np
- libc.src.pthread.pthread_getspecific
- libc.src.pthread.pthread_join
- libc.src.pthread.pthread_key_create
- libc.src.pthread.pthread_key_delete
- libc.src.pthread.pthread_mutex_destroy
- libc.src.pthread.pthread_mutex_init
- libc.src.pthread.pthread_mutex_lock
- libc.src.pthread.pthread_mutex_unlock
- libc.src.pthread.pthread_mutexattr_destroy
- libc.src.pthread.pthread_mutexattr_getpshared
- libc.src.pthread.pthread_mutexattr_getrobust
- libc.src.pthread.pthread_mutexattr_gettype
- libc.src.pthread.pthread_mutexattr_init
- libc.src.pthread.pthread_mutexattr_setpshared
- libc.src.pthread.pthread_mutexattr_setrobust
- libc.src.pthread.pthread_mutexattr_settype
- libc.src.pthread.pthread_once
- libc.src.pthread.pthread_rwlock_clockrdlock
- libc.src.pthread.pthread_rwlock_clockwrlock
- libc.src.pthread.pthread_rwlock_destroy
- libc.src.pthread.pthread_rwlock_init
- libc.src.pthread.pthread_rwlock_rdlock
- libc.src.pthread.pthread_rwlock_timedrdlock
- libc.src.pthread.pthread_rwlock_timedwrlock
- libc.src.pthread.pthread_rwlock_tryrdlock
- libc.src.pthread.pthread_rwlock_trywrlock
- libc.src.pthread.pthread_rwlock_unlock
- libc.src.pthread.pthread_rwlock_wrlock
- libc.src.pthread.pthread_rwlockattr_destroy
- libc.src.pthread.pthread_rwlockattr_getkind_np
- libc.src.pthread.pthread_rwlockattr_getpshared
- libc.src.pthread.pthread_rwlockattr_init
- libc.src.pthread.pthread_rwlockattr_setkind_np
- libc.src.pthread.pthread_rwlockattr_setpshared
- libc.src.pthread.pthread_spin_destroy
- libc.src.pthread.pthread_spin_init
- libc.src.pthread.pthread_spin_lock
- libc.src.pthread.pthread_spin_trylock
- libc.src.pthread.pthread_spin_unlock
- libc.src.pthread.pthread_self
- libc.src.pthread.pthread_setname_np
- libc.src.pthread.pthread_setspecific
-
- # sched.h entrypoints
- libc.src.sched.__sched_getcpucount
- libc.src.sched.__sched_setcpuzero
- libc.src.sched.__sched_setcpuset
- libc.src.sched.__sched_getcpuisset
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.clearerr_unlocked
- libc.src.stdio.fclose
- libc.src.stdio.fdopen
- libc.src.stdio.feof
- libc.src.stdio.feof_unlocked
- libc.src.stdio.ferror
- libc.src.stdio.ferror_unlocked
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgetc_unlocked
- libc.src.stdio.fgets
- libc.src.stdio.fileno
- libc.src.stdio.flockfile
- libc.src.stdio.fopen
- libc.src.stdio.fopencookie
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fread_unlocked
- libc.src.stdio.fseek
- libc.src.stdio.fseeko
- libc.src.stdio.ftell
- libc.src.stdio.ftello
- libc.src.stdio.funlockfile
- libc.src.stdio.fwrite
- libc.src.stdio.fwrite_unlocked
- libc.src.stdio.getc
- libc.src.stdio.getc_unlocked
- libc.src.stdio.getchar
- libc.src.stdio.getchar_unlocked
- libc.src.stdio.perror
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.setbuf
- libc.src.stdio.setvbuf
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.atexit
- libc.src.stdlib.exit
- libc.src.stdlib.getenv
- libc.src.stdlib.quick_exit
-
- # signal.h entrypoints
- libc.src.signal.kill
- libc.src.signal.raise
- libc.src.signal.sigaction
- libc.src.signal.sigaddset
- libc.src.signal.sigaltstack
- libc.src.signal.sigdelset
- libc.src.signal.sigemptyset
- libc.src.signal.sigfillset
- libc.src.signal.signal
- libc.src.signal.sigprocmask
-
- # spawn.h entrypoints
- libc.src.spawn.posix_spawn
- libc.src.spawn.posix_spawn_file_actions_addclose
- libc.src.spawn.posix_spawn_file_actions_adddup2
- libc.src.spawn.posix_spawn_file_actions_addopen
- libc.src.spawn.posix_spawn_file_actions_destroy
- libc.src.spawn.posix_spawn_file_actions_init
-
- # search.h entrypoints
- libc.src.search.hcreate
- libc.src.search.hcreate_r
- libc.src.search.hdestroy
- libc.src.search.hdestroy_r
- libc.src.search.hsearch
- libc.src.search.hsearch_r
- libc.src.search.insque
- libc.src.search.lfind
- libc.src.search.lsearch
- libc.src.search.remque
-
- # threads.h entrypoints
- libc.src.threads.call_once
- libc.src.threads.cnd_broadcast
- libc.src.threads.cnd_destroy
- libc.src.threads.cnd_init
- libc.src.threads.cnd_signal
- libc.src.threads.cnd_wait
- libc.src.threads.mtx_destroy
- libc.src.threads.mtx_init
- libc.src.threads.mtx_lock
- libc.src.threads.mtx_unlock
- libc.src.threads.thrd_create
- libc.src.threads.thrd_current
- libc.src.threads.thrd_detach
- libc.src.threads.thrd_equal
- libc.src.threads.thrd_exit
- libc.src.threads.thrd_join
- libc.src.threads.tss_create
- libc.src.threads.tss_delete
- libc.src.threads.tss_get
- libc.src.threads.tss_set
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.clock_settime
- libc.src.time.difftime
- libc.src.time.gettimeofday
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.mktime
- libc.src.time.nanosleep
- libc.src.time.time
- libc.src.time.timespec_get
-
- # unistd.h entrypoints
- libc.src.unistd.__llvm_libc_syscall
- libc.src.unistd._exit
- libc.src.unistd.environ
- libc.src.unistd.execv
- libc.src.unistd.fork
- libc.src.unistd.getopt
- libc.src.unistd.optarg
- libc.src.unistd.opterr
- libc.src.unistd.optind
- libc.src.unistd.optopt
- libc.src.unistd.swab
-
- # sys/select.h entrypoints
- libc.src.sys.select.select
-
- # sys/socket.h entrypoints
- libc.src.sys.socket.bind
- libc.src.sys.socket.socket
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # dlfcn.h entrypoints
+ libc.src.dlfcn.dlclose
+ libc.src.dlfcn.dlerror
+ libc.src.dlfcn.dlopen
+ libc.src.dlfcn.dlsym
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # fcntl.h entrypoints
+ libc.src.fcntl.creat
+ libc.src.fcntl.fcntl
+ libc.src.fcntl.open
+ libc.src.fcntl.openat
+
+ # poll.h entrypoints
+ libc.src.poll.poll
+
+ # sched.h entrypoints
+ libc.src.sched.sched_get_priority_max
+ libc.src.sched.sched_get_priority_min
+ libc.src.sched.sched_getaffinity
+ libc.src.sched.sched_getparam
+ libc.src.sched.sched_getscheduler
+ libc.src.sched.sched_rr_get_interval
+ libc.src.sched.sched_setaffinity
+ libc.src.sched.sched_setparam
+ libc.src.sched.sched_setscheduler
+ libc.src.sched.sched_yield
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strsignal
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strfromd
+ libc.src.stdlib.strfromf
+ # TODO: long double support is buggy with clang-11. Re-enable when buildbots are upgraded.
+ # libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # stdio.h entrypoints
+ libc.src.stdio.fprintf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.printf
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vasprintf
+
+ # sys/epoll.h entrypoints
+ libc.src.sys.epoll.epoll_create
+ libc.src.sys.epoll.epoll_create1
+ libc.src.sys.epoll.epoll_ctl
+ libc.src.sys.epoll.epoll_pwait
+ libc.src.sys.epoll.epoll_wait
+ # TODO: Need to check if pwait2 is available before providing.
+ # https://github.com/llvm/llvm-project/issues/80060
+ # libc.src.sys.epoll.epoll_pwait2
+
+ # sys/ioctl.h entrypoints
+ libc.src.sys.ioctl.ioctl
+
+ # sys/mman.h entrypoints
+ libc.src.sys.mman.madvise
+ libc.src.sys.mman.mincore
+ libc.src.sys.mman.mlock
+ libc.src.sys.mman.mlock2
+ libc.src.sys.mman.mlockall
+ libc.src.sys.mman.mmap
+ libc.src.sys.mman.mremap
+ libc.src.sys.mman.mprotect
+ libc.src.sys.mman.msync
+ libc.src.sys.mman.munlock
+ libc.src.sys.mman.munlockall
+ libc.src.sys.mman.munmap
+ libc.src.sys.mman.remap_file_pages
+ libc.src.sys.mman.posix_madvise
+ libc.src.sys.mman.shm_open
+ libc.src.sys.mman.shm_unlink
+
+ # sys/random.h entrypoints
+ libc.src.sys.random.getrandom
+
+ # sys/resource.h entrypoints
+ libc.src.sys.resource.getrlimit
+ libc.src.sys.resource.setrlimit
+
+ # sys/sendfile entrypoints
+ libc.src.sys.sendfile.sendfile
+
+ # sys/stat.h entrypoints
+ libc.src.sys.stat.chmod
+ libc.src.sys.stat.fchmod
+ libc.src.sys.stat.fchmodat
+ libc.src.sys.stat.fstat
+ libc.src.sys.stat.lstat
+ libc.src.sys.stat.mkdir
+ libc.src.sys.stat.mkdirat
+ libc.src.sys.stat.stat
+
+ # sys/statvfs.h
+ libc.src.sys.statvfs.fstatvfs
+ libc.src.sys.statvfs.statvfs
+
+ # sys/utsname.h entrypoints
+ libc.src.sys.utsname.uname
+
+ # sys/wait.h entrypoints
+ libc.src.sys.wait.wait
+ libc.src.sys.wait.wait4
+ libc.src.sys.wait.waitpid
+
+ # sys/prctl.h entrypoints
+ libc.src.sys.prctl.prctl
+
+ # sys/auxv.h entrypoints
+ libc.src.sys.auxv.getauxval
+
+ # termios.h entrypoints
+ libc.src.termios.cfgetispeed
+ libc.src.termios.cfgetospeed
+ libc.src.termios.cfsetispeed
+ libc.src.termios.cfsetospeed
+ libc.src.termios.tcdrain
+ libc.src.termios.tcflow
+ libc.src.termios.tcflush
+ libc.src.termios.tcgetattr
+ libc.src.termios.tcgetsid
+ libc.src.termios.tcsendbreak
+ libc.src.termios.tcsetattr
+
+ # unistd.h entrypoints
+ libc.src.unistd.access
+ libc.src.unistd.chdir
+ libc.src.unistd.close
+ libc.src.unistd.dup
+ libc.src.unistd.dup2
+ libc.src.unistd.dup3
+ libc.src.unistd.execve
+ libc.src.unistd.faccessat
+ libc.src.unistd.fchdir
+ libc.src.unistd.fchown
+ libc.src.unistd.fpathconf
+ libc.src.unistd.fsync
+ libc.src.unistd.ftruncate
+ libc.src.unistd.getcwd
+ libc.src.unistd.getentropy
+ libc.src.unistd.geteuid
+ libc.src.unistd.gethostname
+ libc.src.unistd.getpagesize
+ libc.src.unistd.getpid
+ libc.src.unistd.getppid
+ libc.src.unistd.getsid
+ libc.src.unistd.gettid
+ libc.src.unistd.getuid
+ libc.src.unistd.isatty
+ libc.src.unistd.link
+ libc.src.unistd.linkat
+ libc.src.unistd.lseek
+ libc.src.unistd.pathconf
+ libc.src.unistd.pipe
+ libc.src.unistd.pipe2
+ libc.src.unistd.pread
+ libc.src.unistd.pwrite
+ libc.src.unistd.read
+ libc.src.unistd.readlink
+ libc.src.unistd.readlinkat
+ libc.src.unistd.rmdir
+ libc.src.unistd.setsid
+ libc.src.unistd.symlink
+ libc.src.unistd.symlinkat
+ libc.src.unistd.sysconf
+ libc.src.unistd.truncate
+ libc.src.unistd.unlink
+ libc.src.unistd.unlinkat
+ libc.src.unistd.write
+
+ # wchar.h entrypoints
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # sys/uio.h entrypoints
+ libc.src.sys.uio.writev
+ libc.src.sys.uio.readv
+
+ # sys/time.h entrypoints
+ libc.src.sys.time.setitimer
+ libc.src.sys.time.getitimer
+)
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # malloc.h external entrypoints
+ libc.src.stdlib.mallopt
+ )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acoshf16
+ libc.src.math.asinpif16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cospif16
+ libc.src.math.expf16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ # libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ # libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ # libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ # libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ # libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ # libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ # libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.logbf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ # libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ # Temporarily disable nexttowardf16 on aarch64 because the conversion
+ # between _Float16 and long double will crash clang-11. This is fixed in
+ # clang-12 and after: https://godbolt.org/z/8ceT9454c
+ # libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.rsqrtf
+ libc.src.math.rsqrtf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ # if(LIBC_TYPES_HAS_FLOAT128)
+ # list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # # math.h C23 mixed _Float16 and _Float128 entrypoints
+ # libc.src.math.f16addf128
+ # libc.src.math.f16divf128
+ # libc.src.math.f16fmaf128
+ # libc.src.math.f16mulf128
+ # libc.src.math.f16sqrtf128
+ # libc.src.math.f16subf128
+ # )
+ # endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # dirent.h entrypoints
+ libc.src.dirent.closedir
+ libc.src.dirent.dirfd
+ libc.src.dirent.opendir
+ libc.src.dirent.readdir
+
+ # arpa/inet.h entrypoints
+ libc.src.arpa.inet.htonl
+ libc.src.arpa.inet.htons
+ libc.src.arpa.inet.inet_addr
+ libc.src.arpa.inet.inet_aton
+ libc.src.arpa.inet.ntohl
+ libc.src.arpa.inet.ntohs
+
+ # pthread.h entrypoints
+ libc.src.pthread.pthread_atfork
+ libc.src.pthread.pthread_attr_destroy
+ libc.src.pthread.pthread_attr_getdetachstate
+ libc.src.pthread.pthread_attr_getguardsize
+ libc.src.pthread.pthread_attr_getstack
+ libc.src.pthread.pthread_attr_getstacksize
+ libc.src.pthread.pthread_attr_init
+ libc.src.pthread.pthread_attr_setdetachstate
+ libc.src.pthread.pthread_attr_setguardsize
+ libc.src.pthread.pthread_attr_setstack
+ libc.src.pthread.pthread_attr_setstacksize
+ libc.src.pthread.pthread_condattr_destroy
+ libc.src.pthread.pthread_condattr_getclock
+ libc.src.pthread.pthread_condattr_getpshared
+ libc.src.pthread.pthread_condattr_init
+ libc.src.pthread.pthread_condattr_setclock
+ libc.src.pthread.pthread_condattr_setpshared
+ libc.src.pthread.pthread_create
+ libc.src.pthread.pthread_detach
+ libc.src.pthread.pthread_equal
+ libc.src.pthread.pthread_exit
+ libc.src.pthread.pthread_getname_np
+ libc.src.pthread.pthread_getspecific
+ libc.src.pthread.pthread_join
+ libc.src.pthread.pthread_key_create
+ libc.src.pthread.pthread_key_delete
+ libc.src.pthread.pthread_mutex_destroy
+ libc.src.pthread.pthread_mutex_init
+ libc.src.pthread.pthread_mutex_lock
+ libc.src.pthread.pthread_mutex_unlock
+ libc.src.pthread.pthread_mutexattr_destroy
+ libc.src.pthread.pthread_mutexattr_getpshared
+ libc.src.pthread.pthread_mutexattr_getrobust
+ libc.src.pthread.pthread_mutexattr_gettype
+ libc.src.pthread.pthread_mutexattr_init
+ libc.src.pthread.pthread_mutexattr_setpshared
+ libc.src.pthread.pthread_mutexattr_setrobust
+ libc.src.pthread.pthread_mutexattr_settype
+ libc.src.pthread.pthread_once
+ libc.src.pthread.pthread_rwlock_clockrdlock
+ libc.src.pthread.pthread_rwlock_clockwrlock
+ libc.src.pthread.pthread_rwlock_destroy
+ libc.src.pthread.pthread_rwlock_init
+ libc.src.pthread.pthread_rwlock_rdlock
+ libc.src.pthread.pthread_rwlock_timedrdlock
+ libc.src.pthread.pthread_rwlock_timedwrlock
+ libc.src.pthread.pthread_rwlock_tryrdlock
+ libc.src.pthread.pthread_rwlock_trywrlock
+ libc.src.pthread.pthread_rwlock_unlock
+ libc.src.pthread.pthread_rwlock_wrlock
+ libc.src.pthread.pthread_rwlockattr_destroy
+ libc.src.pthread.pthread_rwlockattr_getkind_np
+ libc.src.pthread.pthread_rwlockattr_getpshared
+ libc.src.pthread.pthread_rwlockattr_init
+ libc.src.pthread.pthread_rwlockattr_setkind_np
+ libc.src.pthread.pthread_rwlockattr_setpshared
+ libc.src.pthread.pthread_spin_destroy
+ libc.src.pthread.pthread_spin_init
+ libc.src.pthread.pthread_spin_lock
+ libc.src.pthread.pthread_spin_trylock
+ libc.src.pthread.pthread_spin_unlock
+ libc.src.pthread.pthread_self
+ libc.src.pthread.pthread_setname_np
+ libc.src.pthread.pthread_setspecific
+
+ # sched.h entrypoints
+ libc.src.sched.__sched_getcpucount
+ libc.src.sched.__sched_setcpuzero
+ libc.src.sched.__sched_setcpuset
+ libc.src.sched.__sched_getcpuisset
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.clearerr_unlocked
+ libc.src.stdio.fclose
+ libc.src.stdio.fdopen
+ libc.src.stdio.feof
+ libc.src.stdio.feof_unlocked
+ libc.src.stdio.ferror
+ libc.src.stdio.ferror_unlocked
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgetc_unlocked
+ libc.src.stdio.fgets
+ libc.src.stdio.fileno
+ libc.src.stdio.flockfile
+ libc.src.stdio.fopen
+ libc.src.stdio.fopencookie
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fread_unlocked
+ libc.src.stdio.fseek
+ libc.src.stdio.fseeko
+ libc.src.stdio.ftell
+ libc.src.stdio.ftello
+ libc.src.stdio.funlockfile
+ libc.src.stdio.fwrite
+ libc.src.stdio.fwrite_unlocked
+ libc.src.stdio.getc
+ libc.src.stdio.getc_unlocked
+ libc.src.stdio.getchar
+ libc.src.stdio.getchar_unlocked
+ libc.src.stdio.perror
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.setbuf
+ libc.src.stdio.setvbuf
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.atexit
+ libc.src.stdlib.exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.quick_exit
+
+ # signal.h entrypoints
+ libc.src.signal.kill
+ libc.src.signal.raise
+ libc.src.signal.sigaction
+ libc.src.signal.sigaddset
+ libc.src.signal.sigaltstack
+ libc.src.signal.sigdelset
+ libc.src.signal.sigemptyset
+ libc.src.signal.sigfillset
+ libc.src.signal.signal
+ libc.src.signal.sigprocmask
+
+ # spawn.h entrypoints
+ libc.src.spawn.posix_spawn
+ libc.src.spawn.posix_spawn_file_actions_addclose
+ libc.src.spawn.posix_spawn_file_actions_adddup2
+ libc.src.spawn.posix_spawn_file_actions_addopen
+ libc.src.spawn.posix_spawn_file_actions_destroy
+ libc.src.spawn.posix_spawn_file_actions_init
+
+ # search.h entrypoints
+ libc.src.search.hcreate
+ libc.src.search.hcreate_r
+ libc.src.search.hdestroy
+ libc.src.search.hdestroy_r
+ libc.src.search.hsearch
+ libc.src.search.hsearch_r
+ libc.src.search.insque
+ libc.src.search.lfind
+ libc.src.search.lsearch
+ libc.src.search.remque
+
+ # threads.h entrypoints
+ libc.src.threads.call_once
+ libc.src.threads.cnd_broadcast
+ libc.src.threads.cnd_destroy
+ libc.src.threads.cnd_init
+ libc.src.threads.cnd_signal
+ libc.src.threads.cnd_wait
+ libc.src.threads.mtx_destroy
+ libc.src.threads.mtx_init
+ libc.src.threads.mtx_lock
+ libc.src.threads.mtx_unlock
+ libc.src.threads.thrd_create
+ libc.src.threads.thrd_current
+ libc.src.threads.thrd_detach
+ libc.src.threads.thrd_equal
+ libc.src.threads.thrd_exit
+ libc.src.threads.thrd_join
+ libc.src.threads.tss_create
+ libc.src.threads.tss_delete
+ libc.src.threads.tss_get
+ libc.src.threads.tss_set
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.clock_settime
+ libc.src.time.difftime
+ libc.src.time.gettimeofday
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.mktime
+ libc.src.time.nanosleep
+ libc.src.time.time
+ libc.src.time.timespec_get
+
+ # unistd.h entrypoints
+ libc.src.unistd.__llvm_libc_syscall
+ libc.src.unistd._exit
+ libc.src.unistd.environ
+ libc.src.unistd.execv
+ libc.src.unistd.fork
+ libc.src.unistd.getopt
+ libc.src.unistd.optarg
+ libc.src.unistd.opterr
+ libc.src.unistd.optind
+ libc.src.unistd.optopt
+ libc.src.unistd.swab
+
+ # sys/select.h entrypoints
+ libc.src.sys.select.select
+
+ # sys/socket.h entrypoints
+ libc.src.sys.socket.bind
+ libc.src.sys.socket.socket
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt
index 12d3ab7e1ee17..c6a3ed9015040 100644
--- a/libc/config/linux/arm/entrypoints.txt
+++ b/libc/config/linux/arm/entrypoints.txt
@@ -1,538 +1,538 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # poll.h entrypoints
- libc.src.poll.poll
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
-
- # sys/ioctl.h entrypoints
- libc.src.sys.ioctl.ioctl
-
- # sys/mman.h entrypoints
- libc.src.sys.mman.mmap
- libc.src.sys.mman.munmap
-
- # sys/prctl.h entrypoints
- libc.src.sys.prctl.prctl
-
- # sys/epoll.h entrypoints
- # Disabled due to epoll_wait syscalls not being available on this platform.
- # libc.src.sys.epoll.epoll_wait
- # libc.src.sys.epoll.epoll_pwait
- # libc.src.sys.epoll.epoll_pwait2
-
- # sys/time.h entrypoints
- libc.src.sys.time.setitimer
- libc.src.sys.time.getitimer
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-)
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # search.h entrypoints
- libc.src.search.lfind
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
- )
-endif()
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # malloc.h external entrypoints
- libc.src.stdlib.mallopt
- )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.dfmal
- libc.src.math.dsqrtl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmul
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # poll.h entrypoints
+ libc.src.poll.poll
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+
+ # sys/ioctl.h entrypoints
+ libc.src.sys.ioctl.ioctl
+
+ # sys/mman.h entrypoints
+ libc.src.sys.mman.mmap
+ libc.src.sys.mman.munmap
+
+ # sys/prctl.h entrypoints
+ libc.src.sys.prctl.prctl
+
+ # sys/epoll.h entrypoints
+ # Disabled due to epoll_wait syscalls not being available on this platform.
+ # libc.src.sys.epoll.epoll_wait
+ # libc.src.sys.epoll.epoll_pwait
+ # libc.src.sys.epoll.epoll_pwait2
+
+ # sys/time.h entrypoints
+ libc.src.sys.time.setitimer
+ libc.src.sys.time.getitimer
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+)
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # search.h entrypoints
+ libc.src.search.lfind
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+ )
+endif()
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # malloc.h external entrypoints
+ libc.src.stdlib.mallopt
+ )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.dfmal
+ libc.src.math.dsqrtl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmul
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt
index ca8df44ca2b7f..220c071f89a92 100644
--- a/libc/config/linux/riscv/entrypoints.txt
+++ b/libc/config/linux/riscv/entrypoints.txt
@@ -1,1332 +1,1332 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # dlfcn.h entrypoints
- libc.src.dlfcn.dlclose
- libc.src.dlfcn.dlerror
- libc.src.dlfcn.dlopen
- libc.src.dlfcn.dlsym
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # fcntl.h entrypoints
- libc.src.fcntl.creat
- libc.src.fcntl.fcntl
- libc.src.fcntl.open
- libc.src.fcntl.openat
-
- # poll.h entrypoints
- libc.src.poll.poll
-
- # sched.h entrypoints
- libc.src.sched.sched_get_priority_max
- libc.src.sched.sched_get_priority_min
- libc.src.sched.sched_getaffinity
- libc.src.sched.sched_getparam
- libc.src.sched.sched_getscheduler
- libc.src.sched.sched_rr_get_interval
- libc.src.sched.sched_setaffinity
- libc.src.sched.sched_setparam
- libc.src.sched.sched_setscheduler
- libc.src.sched.sched_yield
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strsignal
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib.a64l
- libc.src.stdlib.abs
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strfromd
- libc.src.stdlib.strfromf
- libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # stdio.h entrypoints
- libc.src.stdio.fprintf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.printf
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.asprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.vfprintf
- libc.src.stdio.vprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vasprintf
-
- # sys/epoll.h entrypoints
- libc.src.sys.epoll.epoll_create
- libc.src.sys.epoll.epoll_create1
- libc.src.sys.epoll.epoll_ctl
- libc.src.sys.epoll.epoll_pwait
- libc.src.sys.epoll.epoll_wait
- # TODO: Need to check if pwait2 is available before providing.
- # https://github.com/llvm/llvm-project/issues/80060
- # libc.src.sys.epoll.epoll_pwait2
-
- # sys/ioctl.h entrypoints
- libc.src.sys.ioctl.ioctl
-
- # sys/mman.h entrypoints
- libc.src.sys.mman.madvise
- libc.src.sys.mman.mincore
- libc.src.sys.mman.mlock
- libc.src.sys.mman.mlock2
- libc.src.sys.mman.mlockall
- libc.src.sys.mman.mmap
- libc.src.sys.mman.mremap
- libc.src.sys.mman.mprotect
- libc.src.sys.mman.msync
- libc.src.sys.mman.munlock
- libc.src.sys.mman.munlockall
- libc.src.sys.mman.munmap
- libc.src.sys.mman.remap_file_pages
- libc.src.sys.mman.posix_madvise
- libc.src.sys.mman.shm_open
- libc.src.sys.mman.shm_unlink
-
- # sys/random.h entrypoints
- libc.src.sys.random.getrandom
-
- # sys/resource.h entrypoints
- libc.src.sys.resource.getrlimit
- libc.src.sys.resource.setrlimit
-
- # sys/sendfile entrypoints
- libc.src.sys.sendfile.sendfile
-
- # sys/stat.h entrypoints
- libc.src.sys.stat.chmod
- libc.src.sys.stat.fchmod
- libc.src.sys.stat.fchmodat
- libc.src.sys.stat.fstat
- libc.src.sys.stat.lstat
- libc.src.sys.stat.mkdir
- libc.src.sys.stat.mkdirat
- libc.src.sys.stat.stat
-
- # sys/statvfs.h
- libc.src.sys.statvfs.fstatvfs
- libc.src.sys.statvfs.statvfs
-
- # sys/utimes.h entrypoints
- libc.src.sys.time.utimes
-
- # sys/utsname.h entrypoints
- libc.src.sys.utsname.uname
-
- # sys/wait.h entrypoints
- libc.src.sys.wait.wait
- libc.src.sys.wait.wait4
- libc.src.sys.wait.waitpid
-
- # sys/prctl.h entrypoints
- libc.src.sys.prctl.prctl
-
- # sys/auxv.h entrypoints
- libc.src.sys.auxv.getauxval
-
- # termios.h entrypoints
- libc.src.termios.cfgetispeed
- libc.src.termios.cfgetospeed
- libc.src.termios.cfsetispeed
- libc.src.termios.cfsetospeed
- libc.src.termios.tcdrain
- libc.src.termios.tcflow
- libc.src.termios.tcflush
- libc.src.termios.tcgetattr
- libc.src.termios.tcgetsid
- libc.src.termios.tcsendbreak
- libc.src.termios.tcsetattr
-
- # unistd.h entrypoints
- libc.src.unistd.access
- libc.src.unistd.chdir
- libc.src.unistd.close
- libc.src.unistd.dup
- libc.src.unistd.dup2
- libc.src.unistd.dup3
- libc.src.unistd.execve
- libc.src.unistd.faccessat
- libc.src.unistd.fchdir
- libc.src.unistd.fpathconf
- libc.src.unistd.fsync
- libc.src.unistd.ftruncate
- libc.src.unistd.getcwd
- libc.src.unistd.getentropy
- libc.src.unistd.geteuid
- libc.src.unistd.gethostname
- libc.src.unistd.getpagesize
- libc.src.unistd.getpid
- libc.src.unistd.getppid
- libc.src.unistd.getsid
- libc.src.unistd.gettid
- libc.src.unistd.getuid
- libc.src.unistd.isatty
- libc.src.unistd.link
- libc.src.unistd.linkat
- libc.src.unistd.lseek
- libc.src.unistd.pathconf
- libc.src.unistd.pipe
- libc.src.unistd.pipe2
- libc.src.unistd.pread
- libc.src.unistd.pwrite
- libc.src.unistd.read
- libc.src.unistd.readlink
- libc.src.unistd.readlinkat
- libc.src.unistd.rmdir
- libc.src.unistd.setsid
- libc.src.unistd.symlink
- libc.src.unistd.symlinkat
- libc.src.unistd.sysconf
- libc.src.unistd.truncate
- libc.src.unistd.unlink
- libc.src.unistd.unlinkat
- libc.src.unistd.write
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wctob
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # sys/uio.h entrypoints
- libc.src.sys.uio.writev
- libc.src.sys.uio.readv
-
- # sys/time.h entrypoints
- libc.src.sys.time.setitimer
- libc.src.sys.time.getitimer
-)
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # malloc.h external entrypoints
- libc.src.stdlib.mallopt
- )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.acospif16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.atanhf16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.rsqrtf
- libc.src.math.rsqrtf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- libc.src.stdfix.idivr
- libc.src.stdfix.idivlr
- libc.src.stdfix.idivk
- libc.src.stdfix.idivlk
- libc.src.stdfix.idivur
- libc.src.stdfix.idivulr
- libc.src.stdfix.idivuk
- libc.src.stdfix.idivulk
- libc.src.stdfix.rdivi
- )
-endif()
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # dirent.h entrypoints
- libc.src.dirent.closedir
- libc.src.dirent.dirfd
- libc.src.dirent.opendir
- libc.src.dirent.readdir
-
- # arpa/inet.h entrypoints
- libc.src.arpa.inet.htonl
- libc.src.arpa.inet.htons
- libc.src.arpa.inet.inet_addr
- libc.src.arpa.inet.inet_aton
- libc.src.arpa.inet.ntohl
- libc.src.arpa.inet.ntohs
-
- # pthread.h entrypoints
- libc.src.pthread.pthread_atfork
- libc.src.pthread.pthread_attr_destroy
- libc.src.pthread.pthread_attr_getdetachstate
- libc.src.pthread.pthread_attr_getguardsize
- libc.src.pthread.pthread_attr_getstack
- libc.src.pthread.pthread_attr_getstacksize
- libc.src.pthread.pthread_attr_init
- libc.src.pthread.pthread_attr_setdetachstate
- libc.src.pthread.pthread_attr_setguardsize
- libc.src.pthread.pthread_attr_setstack
- libc.src.pthread.pthread_attr_setstacksize
- libc.src.pthread.pthread_condattr_destroy
- libc.src.pthread.pthread_condattr_getclock
- libc.src.pthread.pthread_condattr_getpshared
- libc.src.pthread.pthread_condattr_init
- libc.src.pthread.pthread_condattr_setclock
- libc.src.pthread.pthread_condattr_setpshared
- libc.src.pthread.pthread_create
- libc.src.pthread.pthread_detach
- libc.src.pthread.pthread_equal
- libc.src.pthread.pthread_exit
- libc.src.pthread.pthread_getname_np
- libc.src.pthread.pthread_getspecific
- libc.src.pthread.pthread_join
- libc.src.pthread.pthread_key_create
- libc.src.pthread.pthread_key_delete
- libc.src.pthread.pthread_mutex_destroy
- libc.src.pthread.pthread_mutex_init
- libc.src.pthread.pthread_mutex_lock
- libc.src.pthread.pthread_mutex_unlock
- libc.src.pthread.pthread_mutexattr_destroy
- libc.src.pthread.pthread_mutexattr_getpshared
- libc.src.pthread.pthread_mutexattr_getrobust
- libc.src.pthread.pthread_mutexattr_gettype
- libc.src.pthread.pthread_mutexattr_init
- libc.src.pthread.pthread_mutexattr_setpshared
- libc.src.pthread.pthread_mutexattr_setrobust
- libc.src.pthread.pthread_mutexattr_settype
- libc.src.pthread.pthread_once
- libc.src.pthread.pthread_rwlock_clockrdlock
- libc.src.pthread.pthread_rwlock_clockwrlock
- libc.src.pthread.pthread_rwlock_destroy
- libc.src.pthread.pthread_rwlock_init
- libc.src.pthread.pthread_rwlock_rdlock
- libc.src.pthread.pthread_rwlock_timedrdlock
- libc.src.pthread.pthread_rwlock_timedwrlock
- libc.src.pthread.pthread_rwlock_tryrdlock
- libc.src.pthread.pthread_rwlock_trywrlock
- libc.src.pthread.pthread_rwlock_unlock
- libc.src.pthread.pthread_rwlock_wrlock
- libc.src.pthread.pthread_rwlockattr_destroy
- libc.src.pthread.pthread_rwlockattr_getkind_np
- libc.src.pthread.pthread_rwlockattr_getpshared
- libc.src.pthread.pthread_rwlockattr_init
- libc.src.pthread.pthread_rwlockattr_setkind_np
- libc.src.pthread.pthread_rwlockattr_setpshared
- libc.src.pthread.pthread_spin_destroy
- libc.src.pthread.pthread_spin_init
- libc.src.pthread.pthread_spin_lock
- libc.src.pthread.pthread_spin_trylock
- libc.src.pthread.pthread_spin_unlock
- libc.src.pthread.pthread_self
- libc.src.pthread.pthread_setname_np
- libc.src.pthread.pthread_setspecific
-
- # sched.h entrypoints
- libc.src.sched.__sched_getcpucount
- libc.src.sched.__sched_setcpuzero
- libc.src.sched.__sched_setcpuset
- libc.src.sched.__sched_getcpuisset
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.clearerr_unlocked
- libc.src.stdio.fclose
- libc.src.stdio.fdopen
- libc.src.stdio.feof
- libc.src.stdio.feof_unlocked
- libc.src.stdio.ferror
- libc.src.stdio.ferror_unlocked
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgetc_unlocked
- libc.src.stdio.fgets
- libc.src.stdio.fileno
- libc.src.stdio.flockfile
- libc.src.stdio.fopen
- libc.src.stdio.fopencookie
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fread_unlocked
- libc.src.stdio.fseek
- libc.src.stdio.fseeko
- libc.src.stdio.ftell
- libc.src.stdio.ftello
- libc.src.stdio.funlockfile
- libc.src.stdio.fwrite
- libc.src.stdio.fwrite_unlocked
- libc.src.stdio.getc
- libc.src.stdio.getc_unlocked
- libc.src.stdio.getchar
- libc.src.stdio.getchar_unlocked
- libc.src.stdio.perror
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.setbuf
- libc.src.stdio.setvbuf
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.atexit
- libc.src.stdlib.exit
- libc.src.stdlib.getenv
- libc.src.stdlib.quick_exit
-
- # signal.h entrypoints
- libc.src.signal.kill
- libc.src.signal.raise
- libc.src.signal.sigaction
- libc.src.signal.sigaddset
- libc.src.signal.sigaltstack
- libc.src.signal.sigdelset
- libc.src.signal.sigemptyset
- libc.src.signal.sigfillset
- libc.src.signal.signal
- libc.src.signal.sigprocmask
-
- # spawn.h entrypoints
- libc.src.spawn.posix_spawn
- libc.src.spawn.posix_spawn_file_actions_addclose
- libc.src.spawn.posix_spawn_file_actions_adddup2
- libc.src.spawn.posix_spawn_file_actions_addopen
- libc.src.spawn.posix_spawn_file_actions_destroy
- libc.src.spawn.posix_spawn_file_actions_init
-
- # search.h entrypoints
- libc.src.search.hcreate
- libc.src.search.hcreate_r
- libc.src.search.hdestroy
- libc.src.search.hdestroy_r
- libc.src.search.hsearch
- libc.src.search.hsearch_r
- libc.src.search.insque
- libc.src.search.lfind
- libc.src.search.lsearch
- libc.src.search.remque
-
- # threads.h entrypoints
- libc.src.threads.call_once
- libc.src.threads.cnd_broadcast
- libc.src.threads.cnd_destroy
- libc.src.threads.cnd_init
- libc.src.threads.cnd_signal
- libc.src.threads.cnd_wait
- libc.src.threads.mtx_destroy
- libc.src.threads.mtx_init
- libc.src.threads.mtx_lock
- libc.src.threads.mtx_unlock
- libc.src.threads.thrd_create
- libc.src.threads.thrd_current
- libc.src.threads.thrd_detach
- libc.src.threads.thrd_equal
- libc.src.threads.thrd_exit
- libc.src.threads.thrd_join
- libc.src.threads.tss_create
- libc.src.threads.tss_delete
- libc.src.threads.tss_get
- libc.src.threads.tss_set
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.clock_settime
- libc.src.time.difftime
- libc.src.time.gettimeofday
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.mktime
- libc.src.time.nanosleep
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.time
- libc.src.time.timespec_get
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # unistd.h entrypoints
- libc.src.unistd.__llvm_libc_syscall
- libc.src.unistd._exit
- libc.src.unistd.environ
- libc.src.unistd.execv
- libc.src.unistd.fork
- libc.src.unistd.getopt
- libc.src.unistd.optarg
- libc.src.unistd.opterr
- libc.src.unistd.optind
- libc.src.unistd.optopt
- libc.src.unistd.swab
-
- # sys/select.h entrypoints
- libc.src.sys.select.select
-
- # sys/socket.h entrypoints
- libc.src.sys.socket.bind
- libc.src.sys.socket.socket
- libc.src.sys.socket.socketpair
- libc.src.sys.socket.send
- libc.src.sys.socket.sendto
- libc.src.sys.socket.sendmsg
- libc.src.sys.socket.recv
- libc.src.sys.socket.recvfrom
- libc.src.sys.socket.recvmsg
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # dlfcn.h entrypoints
+ libc.src.dlfcn.dlclose
+ libc.src.dlfcn.dlerror
+ libc.src.dlfcn.dlopen
+ libc.src.dlfcn.dlsym
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # fcntl.h entrypoints
+ libc.src.fcntl.creat
+ libc.src.fcntl.fcntl
+ libc.src.fcntl.open
+ libc.src.fcntl.openat
+
+ # poll.h entrypoints
+ libc.src.poll.poll
+
+ # sched.h entrypoints
+ libc.src.sched.sched_get_priority_max
+ libc.src.sched.sched_get_priority_min
+ libc.src.sched.sched_getaffinity
+ libc.src.sched.sched_getparam
+ libc.src.sched.sched_getscheduler
+ libc.src.sched.sched_rr_get_interval
+ libc.src.sched.sched_setaffinity
+ libc.src.sched.sched_setparam
+ libc.src.sched.sched_setscheduler
+ libc.src.sched.sched_yield
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strsignal
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abs
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strfromd
+ libc.src.stdlib.strfromf
+ libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # stdio.h entrypoints
+ libc.src.stdio.fprintf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.printf
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vasprintf
+
+ # sys/epoll.h entrypoints
+ libc.src.sys.epoll.epoll_create
+ libc.src.sys.epoll.epoll_create1
+ libc.src.sys.epoll.epoll_ctl
+ libc.src.sys.epoll.epoll_pwait
+ libc.src.sys.epoll.epoll_wait
+ # TODO: Need to check if pwait2 is available before providing.
+ # https://github.com/llvm/llvm-project/issues/80060
+ # libc.src.sys.epoll.epoll_pwait2
+
+ # sys/ioctl.h entrypoints
+ libc.src.sys.ioctl.ioctl
+
+ # sys/mman.h entrypoints
+ libc.src.sys.mman.madvise
+ libc.src.sys.mman.mincore
+ libc.src.sys.mman.mlock
+ libc.src.sys.mman.mlock2
+ libc.src.sys.mman.mlockall
+ libc.src.sys.mman.mmap
+ libc.src.sys.mman.mremap
+ libc.src.sys.mman.mprotect
+ libc.src.sys.mman.msync
+ libc.src.sys.mman.munlock
+ libc.src.sys.mman.munlockall
+ libc.src.sys.mman.munmap
+ libc.src.sys.mman.remap_file_pages
+ libc.src.sys.mman.posix_madvise
+ libc.src.sys.mman.shm_open
+ libc.src.sys.mman.shm_unlink
+
+ # sys/random.h entrypoints
+ libc.src.sys.random.getrandom
+
+ # sys/resource.h entrypoints
+ libc.src.sys.resource.getrlimit
+ libc.src.sys.resource.setrlimit
+
+ # sys/sendfile entrypoints
+ libc.src.sys.sendfile.sendfile
+
+ # sys/stat.h entrypoints
+ libc.src.sys.stat.chmod
+ libc.src.sys.stat.fchmod
+ libc.src.sys.stat.fchmodat
+ libc.src.sys.stat.fstat
+ libc.src.sys.stat.lstat
+ libc.src.sys.stat.mkdir
+ libc.src.sys.stat.mkdirat
+ libc.src.sys.stat.stat
+
+ # sys/statvfs.h
+ libc.src.sys.statvfs.fstatvfs
+ libc.src.sys.statvfs.statvfs
+
+ # sys/utimes.h entrypoints
+ libc.src.sys.time.utimes
+
+ # sys/utsname.h entrypoints
+ libc.src.sys.utsname.uname
+
+ # sys/wait.h entrypoints
+ libc.src.sys.wait.wait
+ libc.src.sys.wait.wait4
+ libc.src.sys.wait.waitpid
+
+ # sys/prctl.h entrypoints
+ libc.src.sys.prctl.prctl
+
+ # sys/auxv.h entrypoints
+ libc.src.sys.auxv.getauxval
+
+ # termios.h entrypoints
+ libc.src.termios.cfgetispeed
+ libc.src.termios.cfgetospeed
+ libc.src.termios.cfsetispeed
+ libc.src.termios.cfsetospeed
+ libc.src.termios.tcdrain
+ libc.src.termios.tcflow
+ libc.src.termios.tcflush
+ libc.src.termios.tcgetattr
+ libc.src.termios.tcgetsid
+ libc.src.termios.tcsendbreak
+ libc.src.termios.tcsetattr
+
+ # unistd.h entrypoints
+ libc.src.unistd.access
+ libc.src.unistd.chdir
+ libc.src.unistd.close
+ libc.src.unistd.dup
+ libc.src.unistd.dup2
+ libc.src.unistd.dup3
+ libc.src.unistd.execve
+ libc.src.unistd.faccessat
+ libc.src.unistd.fchdir
+ libc.src.unistd.fpathconf
+ libc.src.unistd.fsync
+ libc.src.unistd.ftruncate
+ libc.src.unistd.getcwd
+ libc.src.unistd.getentropy
+ libc.src.unistd.geteuid
+ libc.src.unistd.gethostname
+ libc.src.unistd.getpagesize
+ libc.src.unistd.getpid
+ libc.src.unistd.getppid
+ libc.src.unistd.getsid
+ libc.src.unistd.gettid
+ libc.src.unistd.getuid
+ libc.src.unistd.isatty
+ libc.src.unistd.link
+ libc.src.unistd.linkat
+ libc.src.unistd.lseek
+ libc.src.unistd.pathconf
+ libc.src.unistd.pipe
+ libc.src.unistd.pipe2
+ libc.src.unistd.pread
+ libc.src.unistd.pwrite
+ libc.src.unistd.read
+ libc.src.unistd.readlink
+ libc.src.unistd.readlinkat
+ libc.src.unistd.rmdir
+ libc.src.unistd.setsid
+ libc.src.unistd.symlink
+ libc.src.unistd.symlinkat
+ libc.src.unistd.sysconf
+ libc.src.unistd.truncate
+ libc.src.unistd.unlink
+ libc.src.unistd.unlinkat
+ libc.src.unistd.write
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wctob
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # sys/uio.h entrypoints
+ libc.src.sys.uio.writev
+ libc.src.sys.uio.readv
+
+ # sys/time.h entrypoints
+ libc.src.sys.time.setitimer
+ libc.src.sys.time.getitimer
+)
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # malloc.h external entrypoints
+ libc.src.stdlib.mallopt
+ )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.acospif16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.atanhf16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.rsqrtf
+ libc.src.math.rsqrtf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ libc.src.stdfix.idivr
+ libc.src.stdfix.idivlr
+ libc.src.stdfix.idivk
+ libc.src.stdfix.idivlk
+ libc.src.stdfix.idivur
+ libc.src.stdfix.idivulr
+ libc.src.stdfix.idivuk
+ libc.src.stdfix.idivulk
+ libc.src.stdfix.rdivi
+ )
+endif()
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # dirent.h entrypoints
+ libc.src.dirent.closedir
+ libc.src.dirent.dirfd
+ libc.src.dirent.opendir
+ libc.src.dirent.readdir
+
+ # arpa/inet.h entrypoints
+ libc.src.arpa.inet.htonl
+ libc.src.arpa.inet.htons
+ libc.src.arpa.inet.inet_addr
+ libc.src.arpa.inet.inet_aton
+ libc.src.arpa.inet.ntohl
+ libc.src.arpa.inet.ntohs
+
+ # pthread.h entrypoints
+ libc.src.pthread.pthread_atfork
+ libc.src.pthread.pthread_attr_destroy
+ libc.src.pthread.pthread_attr_getdetachstate
+ libc.src.pthread.pthread_attr_getguardsize
+ libc.src.pthread.pthread_attr_getstack
+ libc.src.pthread.pthread_attr_getstacksize
+ libc.src.pthread.pthread_attr_init
+ libc.src.pthread.pthread_attr_setdetachstate
+ libc.src.pthread.pthread_attr_setguardsize
+ libc.src.pthread.pthread_attr_setstack
+ libc.src.pthread.pthread_attr_setstacksize
+ libc.src.pthread.pthread_condattr_destroy
+ libc.src.pthread.pthread_condattr_getclock
+ libc.src.pthread.pthread_condattr_getpshared
+ libc.src.pthread.pthread_condattr_init
+ libc.src.pthread.pthread_condattr_setclock
+ libc.src.pthread.pthread_condattr_setpshared
+ libc.src.pthread.pthread_create
+ libc.src.pthread.pthread_detach
+ libc.src.pthread.pthread_equal
+ libc.src.pthread.pthread_exit
+ libc.src.pthread.pthread_getname_np
+ libc.src.pthread.pthread_getspecific
+ libc.src.pthread.pthread_join
+ libc.src.pthread.pthread_key_create
+ libc.src.pthread.pthread_key_delete
+ libc.src.pthread.pthread_mutex_destroy
+ libc.src.pthread.pthread_mutex_init
+ libc.src.pthread.pthread_mutex_lock
+ libc.src.pthread.pthread_mutex_unlock
+ libc.src.pthread.pthread_mutexattr_destroy
+ libc.src.pthread.pthread_mutexattr_getpshared
+ libc.src.pthread.pthread_mutexattr_getrobust
+ libc.src.pthread.pthread_mutexattr_gettype
+ libc.src.pthread.pthread_mutexattr_init
+ libc.src.pthread.pthread_mutexattr_setpshared
+ libc.src.pthread.pthread_mutexattr_setrobust
+ libc.src.pthread.pthread_mutexattr_settype
+ libc.src.pthread.pthread_once
+ libc.src.pthread.pthread_rwlock_clockrdlock
+ libc.src.pthread.pthread_rwlock_clockwrlock
+ libc.src.pthread.pthread_rwlock_destroy
+ libc.src.pthread.pthread_rwlock_init
+ libc.src.pthread.pthread_rwlock_rdlock
+ libc.src.pthread.pthread_rwlock_timedrdlock
+ libc.src.pthread.pthread_rwlock_timedwrlock
+ libc.src.pthread.pthread_rwlock_tryrdlock
+ libc.src.pthread.pthread_rwlock_trywrlock
+ libc.src.pthread.pthread_rwlock_unlock
+ libc.src.pthread.pthread_rwlock_wrlock
+ libc.src.pthread.pthread_rwlockattr_destroy
+ libc.src.pthread.pthread_rwlockattr_getkind_np
+ libc.src.pthread.pthread_rwlockattr_getpshared
+ libc.src.pthread.pthread_rwlockattr_init
+ libc.src.pthread.pthread_rwlockattr_setkind_np
+ libc.src.pthread.pthread_rwlockattr_setpshared
+ libc.src.pthread.pthread_spin_destroy
+ libc.src.pthread.pthread_spin_init
+ libc.src.pthread.pthread_spin_lock
+ libc.src.pthread.pthread_spin_trylock
+ libc.src.pthread.pthread_spin_unlock
+ libc.src.pthread.pthread_self
+ libc.src.pthread.pthread_setname_np
+ libc.src.pthread.pthread_setspecific
+
+ # sched.h entrypoints
+ libc.src.sched.__sched_getcpucount
+ libc.src.sched.__sched_setcpuzero
+ libc.src.sched.__sched_setcpuset
+ libc.src.sched.__sched_getcpuisset
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.clearerr_unlocked
+ libc.src.stdio.fclose
+ libc.src.stdio.fdopen
+ libc.src.stdio.feof
+ libc.src.stdio.feof_unlocked
+ libc.src.stdio.ferror
+ libc.src.stdio.ferror_unlocked
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgetc_unlocked
+ libc.src.stdio.fgets
+ libc.src.stdio.fileno
+ libc.src.stdio.flockfile
+ libc.src.stdio.fopen
+ libc.src.stdio.fopencookie
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fread_unlocked
+ libc.src.stdio.fseek
+ libc.src.stdio.fseeko
+ libc.src.stdio.ftell
+ libc.src.stdio.ftello
+ libc.src.stdio.funlockfile
+ libc.src.stdio.fwrite
+ libc.src.stdio.fwrite_unlocked
+ libc.src.stdio.getc
+ libc.src.stdio.getc_unlocked
+ libc.src.stdio.getchar
+ libc.src.stdio.getchar_unlocked
+ libc.src.stdio.perror
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.setbuf
+ libc.src.stdio.setvbuf
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.atexit
+ libc.src.stdlib.exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.quick_exit
+
+ # signal.h entrypoints
+ libc.src.signal.kill
+ libc.src.signal.raise
+ libc.src.signal.sigaction
+ libc.src.signal.sigaddset
+ libc.src.signal.sigaltstack
+ libc.src.signal.sigdelset
+ libc.src.signal.sigemptyset
+ libc.src.signal.sigfillset
+ libc.src.signal.signal
+ libc.src.signal.sigprocmask
+
+ # spawn.h entrypoints
+ libc.src.spawn.posix_spawn
+ libc.src.spawn.posix_spawn_file_actions_addclose
+ libc.src.spawn.posix_spawn_file_actions_adddup2
+ libc.src.spawn.posix_spawn_file_actions_addopen
+ libc.src.spawn.posix_spawn_file_actions_destroy
+ libc.src.spawn.posix_spawn_file_actions_init
+
+ # search.h entrypoints
+ libc.src.search.hcreate
+ libc.src.search.hcreate_r
+ libc.src.search.hdestroy
+ libc.src.search.hdestroy_r
+ libc.src.search.hsearch
+ libc.src.search.hsearch_r
+ libc.src.search.insque
+ libc.src.search.lfind
+ libc.src.search.lsearch
+ libc.src.search.remque
+
+ # threads.h entrypoints
+ libc.src.threads.call_once
+ libc.src.threads.cnd_broadcast
+ libc.src.threads.cnd_destroy
+ libc.src.threads.cnd_init
+ libc.src.threads.cnd_signal
+ libc.src.threads.cnd_wait
+ libc.src.threads.mtx_destroy
+ libc.src.threads.mtx_init
+ libc.src.threads.mtx_lock
+ libc.src.threads.mtx_unlock
+ libc.src.threads.thrd_create
+ libc.src.threads.thrd_current
+ libc.src.threads.thrd_detach
+ libc.src.threads.thrd_equal
+ libc.src.threads.thrd_exit
+ libc.src.threads.thrd_join
+ libc.src.threads.tss_create
+ libc.src.threads.tss_delete
+ libc.src.threads.tss_get
+ libc.src.threads.tss_set
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.clock_settime
+ libc.src.time.difftime
+ libc.src.time.gettimeofday
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.mktime
+ libc.src.time.nanosleep
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.time
+ libc.src.time.timespec_get
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # unistd.h entrypoints
+ libc.src.unistd.__llvm_libc_syscall
+ libc.src.unistd._exit
+ libc.src.unistd.environ
+ libc.src.unistd.execv
+ libc.src.unistd.fork
+ libc.src.unistd.getopt
+ libc.src.unistd.optarg
+ libc.src.unistd.opterr
+ libc.src.unistd.optind
+ libc.src.unistd.optopt
+ libc.src.unistd.swab
+
+ # sys/select.h entrypoints
+ libc.src.sys.select.select
+
+ # sys/socket.h entrypoints
+ libc.src.sys.socket.bind
+ libc.src.sys.socket.socket
+ libc.src.sys.socket.socketpair
+ libc.src.sys.socket.send
+ libc.src.sys.socket.sendto
+ libc.src.sys.socket.sendmsg
+ libc.src.sys.socket.recv
+ libc.src.sys.socket.recvfrom
+ libc.src.sys.socket.recvmsg
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index 3959c6ddb8c3f..ba07c328e291b 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -1,1403 +1,1403 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # dlfcn.h entrypoints
- libc.src.dlfcn.dladdr
- libc.src.dlfcn.dlclose
- libc.src.dlfcn.dlerror
- libc.src.dlfcn.dlopen
- libc.src.dlfcn.dlsym
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # fcntl.h entrypoints
- libc.src.fcntl.creat
- libc.src.fcntl.fcntl
- libc.src.fcntl.open
- libc.src.fcntl.openat
-
- # poll.h entrypoints
- libc.src.poll.poll
-
- # sched.h entrypoints
- libc.src.sched.getcpu
- libc.src.sched.sched_get_priority_max
- libc.src.sched.sched_get_priority_min
- libc.src.sched.sched_getaffinity
- libc.src.sched.sched_getparam
- libc.src.sched.sched_getscheduler
- libc.src.sched.sched_rr_get_interval
- libc.src.sched.sched_setaffinity
- libc.src.sched.sched_setparam
- libc.src.sched.sched_setscheduler
- libc.src.sched.sched_yield
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.memset_explicit
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcoll
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strdup
- libc.src.string.strerror
- libc.src.string.strerror_r
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strndup
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strsep
- libc.src.string.strsignal
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
- libc.src.string.strxfrm
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.ffs
- libc.src.strings.ffsl
- libc.src.strings.ffsll
- libc.src.strings.index
- libc.src.strings.rindex
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdbit.h entrypoints
- libc.src.stdbit.stdc_bit_ceil_uc
- libc.src.stdbit.stdc_bit_ceil_ui
- libc.src.stdbit.stdc_bit_ceil_ul
- libc.src.stdbit.stdc_bit_ceil_ull
- libc.src.stdbit.stdc_bit_ceil_us
- libc.src.stdbit.stdc_bit_floor_uc
- libc.src.stdbit.stdc_bit_floor_ui
- libc.src.stdbit.stdc_bit_floor_ul
- libc.src.stdbit.stdc_bit_floor_ull
- libc.src.stdbit.stdc_bit_floor_us
- libc.src.stdbit.stdc_bit_width_uc
- libc.src.stdbit.stdc_bit_width_ui
- libc.src.stdbit.stdc_bit_width_ul
- libc.src.stdbit.stdc_bit_width_ull
- libc.src.stdbit.stdc_bit_width_us
- libc.src.stdbit.stdc_count_ones_uc
- libc.src.stdbit.stdc_count_ones_ui
- libc.src.stdbit.stdc_count_ones_ul
- libc.src.stdbit.stdc_count_ones_ull
- libc.src.stdbit.stdc_count_ones_us
- libc.src.stdbit.stdc_count_zeros_uc
- libc.src.stdbit.stdc_count_zeros_ui
- libc.src.stdbit.stdc_count_zeros_ul
- libc.src.stdbit.stdc_count_zeros_ull
- libc.src.stdbit.stdc_count_zeros_us
- libc.src.stdbit.stdc_first_leading_one_uc
- libc.src.stdbit.stdc_first_leading_one_ui
- libc.src.stdbit.stdc_first_leading_one_ul
- libc.src.stdbit.stdc_first_leading_one_ull
- libc.src.stdbit.stdc_first_leading_one_us
- libc.src.stdbit.stdc_first_leading_zero_uc
- libc.src.stdbit.stdc_first_leading_zero_ui
- libc.src.stdbit.stdc_first_leading_zero_ul
- libc.src.stdbit.stdc_first_leading_zero_ull
- libc.src.stdbit.stdc_first_leading_zero_us
- libc.src.stdbit.stdc_first_trailing_one_uc
- libc.src.stdbit.stdc_first_trailing_one_ui
- libc.src.stdbit.stdc_first_trailing_one_ul
- libc.src.stdbit.stdc_first_trailing_one_ull
- libc.src.stdbit.stdc_first_trailing_one_us
- libc.src.stdbit.stdc_first_trailing_zero_uc
- libc.src.stdbit.stdc_first_trailing_zero_ui
- libc.src.stdbit.stdc_first_trailing_zero_ul
- libc.src.stdbit.stdc_first_trailing_zero_ull
- libc.src.stdbit.stdc_first_trailing_zero_us
- libc.src.stdbit.stdc_has_single_bit_uc
- libc.src.stdbit.stdc_has_single_bit_ui
- libc.src.stdbit.stdc_has_single_bit_ul
- libc.src.stdbit.stdc_has_single_bit_ull
- libc.src.stdbit.stdc_has_single_bit_us
- libc.src.stdbit.stdc_leading_ones_uc
- libc.src.stdbit.stdc_leading_ones_ui
- libc.src.stdbit.stdc_leading_ones_ul
- libc.src.stdbit.stdc_leading_ones_ull
- libc.src.stdbit.stdc_leading_ones_us
- libc.src.stdbit.stdc_leading_zeros_uc
- libc.src.stdbit.stdc_leading_zeros_ui
- libc.src.stdbit.stdc_leading_zeros_ul
- libc.src.stdbit.stdc_leading_zeros_ull
- libc.src.stdbit.stdc_leading_zeros_us
- libc.src.stdbit.stdc_trailing_ones_uc
- libc.src.stdbit.stdc_trailing_ones_ui
- libc.src.stdbit.stdc_trailing_ones_ul
- libc.src.stdbit.stdc_trailing_ones_ull
- libc.src.stdbit.stdc_trailing_ones_us
- libc.src.stdbit.stdc_trailing_zeros_uc
- libc.src.stdbit.stdc_trailing_zeros_ui
- libc.src.stdbit.stdc_trailing_zeros_ul
- libc.src.stdbit.stdc_trailing_zeros_ull
- libc.src.stdbit.stdc_trailing_zeros_us
-
- # stdlib.h entrypoints
- libc.src.stdlib.a64l
- libc.src.stdlib.abs
- libc.src.stdlib.atof
- libc.src.stdlib.atoi
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.l64a
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.qsort_r
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.stdlib.strfromd
- libc.src.stdlib.strfromf
- libc.src.stdlib.strfroml
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.calloc
- libc.src.stdlib.free
- libc.src.stdlib.malloc
- libc.src.stdlib.realloc
-
- # stdio.h entrypoints
- libc.src.stdio.fprintf
- libc.src.stdio.fscanf
- libc.src.stdio.vfscanf
- libc.src.stdio.printf
- libc.src.stdio.remove
- libc.src.stdio.rename
- libc.src.stdio.scanf
- libc.src.stdio.vscanf
- libc.src.stdio.snprintf
- libc.src.stdio.sprintf
- libc.src.stdio.asprintf
- libc.src.stdio.sscanf
- libc.src.stdio.vsscanf
- libc.src.stdio.vfprintf
- libc.src.stdio.vprintf
- libc.src.stdio.vsnprintf
- libc.src.stdio.vsprintf
- libc.src.stdio.vasprintf
-
- # sys/epoll.h entrypoints
- libc.src.sys.epoll.epoll_create
- libc.src.sys.epoll.epoll_create1
- libc.src.sys.epoll.epoll_ctl
- libc.src.sys.epoll.epoll_pwait
- libc.src.sys.epoll.epoll_wait
- # TODO: Need to check if pwait2 is available before providing.
- # https://github.com/llvm/llvm-project/issues/80060
- # libc.src.sys.epoll.epoll_pwait2
-
- # sys/ioctl.h entrypoints
- libc.src.sys.ioctl.ioctl
-
- # sys/mman.h entrypoints
- libc.src.sys.mman.madvise
- libc.src.sys.mman.mincore
- libc.src.sys.mman.mlock
- libc.src.sys.mman.mlock2
- libc.src.sys.mman.mlockall
- libc.src.sys.mman.mmap
- libc.src.sys.mman.mremap
- libc.src.sys.mman.mprotect
- libc.src.sys.mman.msync
- libc.src.sys.mman.munlock
- libc.src.sys.mman.munlockall
- libc.src.sys.mman.munmap
- libc.src.sys.mman.pkey_alloc
- libc.src.sys.mman.pkey_free
- libc.src.sys.mman.pkey_get
- libc.src.sys.mman.pkey_mprotect
- libc.src.sys.mman.pkey_set
- libc.src.sys.mman.remap_file_pages
- libc.src.sys.mman.posix_madvise
- libc.src.sys.mman.shm_open
- libc.src.sys.mman.shm_unlink
-
- # sys/random.h entrypoints
- libc.src.sys.random.getrandom
-
- # sys/resource.h entrypoints
- libc.src.sys.resource.getrlimit
- libc.src.sys.resource.setrlimit
-
- # sys/sendfile entrypoints
- libc.src.sys.sendfile.sendfile
-
- # sys/stat.h entrypoints
- libc.src.sys.stat.chmod
- libc.src.sys.stat.fchmod
- libc.src.sys.stat.fchmodat
- libc.src.sys.stat.fstat
- libc.src.sys.stat.lstat
- libc.src.sys.stat.mkdir
- libc.src.sys.stat.mkdirat
- libc.src.sys.stat.stat
-
- # sys/statvfs.h
- libc.src.sys.statvfs.fstatvfs
- libc.src.sys.statvfs.statvfs
-
- # sys/utimes.h entrypoints
- libc.src.sys.time.utimes
-
- # sys/utsname.h entrypoints
- libc.src.sys.utsname.uname
-
- # sys/wait.h entrypoints
- libc.src.sys.wait.wait
- libc.src.sys.wait.wait4
- libc.src.sys.wait.waitpid
-
- # sys/prctl.h entrypoints
- libc.src.sys.prctl.prctl
-
- # sys/auxv.h entrypoints
- libc.src.sys.auxv.getauxval
-
- # termios.h entrypoints
- libc.src.termios.cfgetispeed
- libc.src.termios.cfgetospeed
- libc.src.termios.cfsetispeed
- libc.src.termios.cfsetospeed
- libc.src.termios.tcdrain
- libc.src.termios.tcflow
- libc.src.termios.tcflush
- libc.src.termios.tcgetattr
- libc.src.termios.tcgetsid
- libc.src.termios.tcsendbreak
- libc.src.termios.tcsetattr
-
- # unistd.h entrypoints
- libc.src.unistd.access
- libc.src.unistd.chdir
- libc.src.unistd.chown
- libc.src.unistd.close
- libc.src.unistd.dup
- libc.src.unistd.dup2
- libc.src.unistd.dup3
- libc.src.unistd.execve
- libc.src.unistd.faccessat
- libc.src.unistd.fchdir
- libc.src.unistd.fchown
- libc.src.unistd.fpathconf
- libc.src.unistd.fsync
- libc.src.unistd.ftruncate
- libc.src.unistd.getcwd
- libc.src.unistd.getentropy
- libc.src.unistd.geteuid
- libc.src.unistd.gethostname
- libc.src.unistd.getpagesize
- libc.src.unistd.getpid
- libc.src.unistd.getppid
- libc.src.unistd.getsid
- libc.src.unistd.gettid
- libc.src.unistd.getgid
- libc.src.unistd.getuid
- libc.src.unistd.isatty
- libc.src.unistd.link
- libc.src.unistd.linkat
- libc.src.unistd.lseek
- libc.src.unistd.pathconf
- libc.src.unistd.pipe
- libc.src.unistd.pipe2
- libc.src.unistd.pread
- libc.src.unistd.pwrite
- libc.src.unistd.read
- libc.src.unistd.readlink
- libc.src.unistd.readlinkat
- libc.src.unistd.rmdir
- libc.src.unistd.setsid
- libc.src.unistd.symlink
- libc.src.unistd.symlinkat
- libc.src.unistd.sysconf
- libc.src.unistd.truncate
- libc.src.unistd.unlink
- libc.src.unistd.unlinkat
- libc.src.unistd.write
-
- # wchar.h entrypoints
- libc.src.wchar.btowc
- libc.src.wchar.wcslen
- libc.src.wchar.wcsnlen
- libc.src.wchar.wctob
- libc.src.wchar.wmemmove
- libc.src.wchar.wmemset
- libc.src.wchar.wcschr
- libc.src.wchar.wcsncmp
- libc.src.wchar.wcscmp
- libc.src.wchar.wcspbrk
- libc.src.wchar.wcsrchr
- libc.src.wchar.wcsspn
- libc.src.wchar.wcscspn
- libc.src.wchar.wcsdup
- libc.src.wchar.wmemcmp
- libc.src.wchar.wmempcpy
- libc.src.wchar.wmemcpy
- libc.src.wchar.wcsncpy
- libc.src.wchar.wcscat
- libc.src.wchar.wcsstr
- libc.src.wchar.wcsncat
- libc.src.wchar.wcslcat
- libc.src.wchar.wcscpy
- libc.src.wchar.wcslcpy
- libc.src.wchar.wmemchr
- libc.src.wchar.wcpcpy
- libc.src.wchar.wcpncpy
- libc.src.wchar.wcstod
- libc.src.wchar.wcstof
- libc.src.wchar.wcstok
- libc.src.wchar.wcstol
- libc.src.wchar.wcstold
- libc.src.wchar.wcstoll
- libc.src.wchar.wcstoul
- libc.src.wchar.wcstoull
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-
- # sys/uio.h entrypoints
- libc.src.sys.uio.writev
- libc.src.sys.uio.readv
-
- # sys/time.h entrypoints
- libc.src.sys.time.setitimer
- libc.src.sys.time.getitimer
-)
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # malloc.h external entrypoints
- libc.src.stdlib.mallopt
- )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
- # complex.h entrypoints
- libc.src.complex.creal
- libc.src.complex.crealf
- libc.src.complex.creall
- libc.src.complex.cimag
- libc.src.complex.cimagf
- libc.src.complex.cimagl
- libc.src.complex.conj
- libc.src.complex.conjf
- libc.src.complex.conjl
- libc.src.complex.cproj
- libc.src.complex.cprojf
- libc.src.complex.cprojl
-
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.canonicalize
- libc.src.math.canonicalizef
- libc.src.math.canonicalizel
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.cospif
- libc.src.math.dfmal
- libc.src.math.dmull
- libc.src.math.dsqrtl
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp10m1f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.exp2m1f
- libc.src.math.expf
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fadd
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaximum
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaxl
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminimum
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminl
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.fmul
- libc.src.math.fmull
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fromfp
- libc.src.math.fromfpf
- libc.src.math.fromfpl
- libc.src.math.fromfpx
- libc.src.math.fromfpxf
- libc.src.math.fromfpxl
- libc.src.math.fsqrt
- libc.src.math.fsqrtl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.getpayload
- libc.src.math.getpayloadf
- libc.src.math.getpayloadl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.iscanonical
- libc.src.math.iscanonicalf
- libc.src.math.iscanonicall
- libc.src.math.isnan
- libc.src.math.isnanf
- libc.src.math.isnanl
- libc.src.math.issignaling
- libc.src.math.issignalingf
- libc.src.math.issignalingl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llogb
- libc.src.math.llogbf
- libc.src.math.llogbl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.logf
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nextdown
- libc.src.math.nextdownf
- libc.src.math.nextdownl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.nextup
- libc.src.math.nextupf
- libc.src.math.nextupl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainder
- libc.src.math.remainderf
- libc.src.math.remainderl
- libc.src.math.remquo
- libc.src.math.remquof
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundeven
- libc.src.math.roundevenf
- libc.src.math.roundevenl
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.setpayload
- libc.src.math.setpayloadf
- libc.src.math.setpayloadl
- libc.src.math.setpayloadsig
- libc.src.math.setpayloadsigf
- libc.src.math.setpayloadsigl
- libc.src.math.sin
- libc.src.math.sincos
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sinpif
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.totalorder
- libc.src.math.totalorderf
- libc.src.math.totalorderl
- libc.src.math.totalordermag
- libc.src.math.totalordermagf
- libc.src.math.totalordermagl
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
- libc.src.math.ufromfp
- libc.src.math.ufromfpf
- libc.src.math.ufromfpl
- libc.src.math.ufromfpx
- libc.src.math.ufromfpxf
- libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float16 entrypoints
- libc.src.complex.crealf16
- libc.src.complex.cimagf16
- libc.src.complex.conjf16
- libc.src.complex.cprojf16
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float16 entrypoints
- libc.src.math.acosf16
- libc.src.math.acoshf16
- libc.src.math.acospif16
- libc.src.math.asinf16
- libc.src.math.asinhf16
- libc.src.math.asinpif16
- libc.src.math.atanf16
- libc.src.math.atanhf16
- libc.src.math.atanpif16
- libc.src.math.canonicalizef16
- libc.src.math.ceilf16
- libc.src.math.copysignf16
- libc.src.math.cosf16
- libc.src.math.coshf16
- libc.src.math.cospif16
- libc.src.math.exp10f16
- libc.src.math.exp10m1f16
- libc.src.math.exp2f16
- libc.src.math.exp2m1f16
- libc.src.math.expf16
- libc.src.math.expm1f16
- libc.src.math.f16add
- libc.src.math.f16addf
- libc.src.math.f16addl
- libc.src.math.f16div
- libc.src.math.f16divf
- libc.src.math.f16divl
- libc.src.math.f16fma
- libc.src.math.f16fmaf
- libc.src.math.f16fmal
- libc.src.math.f16mul
- libc.src.math.f16mulf
- libc.src.math.f16mull
- libc.src.math.f16sqrt
- libc.src.math.f16sqrtf
- libc.src.math.f16sqrtl
- libc.src.math.f16sub
- libc.src.math.f16subf
- libc.src.math.f16subl
- libc.src.math.fabsf16
- libc.src.math.fdimf16
- libc.src.math.floorf16
- libc.src.math.fmaf16
- libc.src.math.fmaxf16
- libc.src.math.fmaximum_mag_numf16
- libc.src.math.fmaximum_magf16
- libc.src.math.fmaximum_numf16
- libc.src.math.fmaximumf16
- libc.src.math.fminf16
- libc.src.math.fminimum_mag_numf16
- libc.src.math.fminimum_magf16
- libc.src.math.fminimum_numf16
- libc.src.math.fminimumf16
- libc.src.math.fmodf16
- libc.src.math.frexpf16
- libc.src.math.fromfpf16
- libc.src.math.fromfpxf16
- libc.src.math.getpayloadf16
- libc.src.math.hypotf16
- libc.src.math.ilogbf16
- libc.src.math.iscanonicalf16
- libc.src.math.issignalingf16
- libc.src.math.ldexpf16
- libc.src.math.llogbf16
- libc.src.math.llrintf16
- libc.src.math.llroundf16
- libc.src.math.log10f16
- libc.src.math.log2f16
- libc.src.math.logbf16
- libc.src.math.logf16
- libc.src.math.lrintf16
- libc.src.math.lroundf16
- libc.src.math.modff16
- libc.src.math.nanf16
- libc.src.math.nearbyintf16
- libc.src.math.nextafterf16
- libc.src.math.nextdownf16
- libc.src.math.nexttowardf16
- libc.src.math.nextupf16
- libc.src.math.remainderf16
- libc.src.math.remquof16
- libc.src.math.rintf16
- libc.src.math.roundevenf16
- libc.src.math.roundf16
- libc.src.math.rsqrtf
- libc.src.math.rsqrtf16
- libc.src.math.scalblnf16
- libc.src.math.scalbnf16
- libc.src.math.setpayloadf16
- libc.src.math.setpayloadsigf16
- libc.src.math.sinf16
- libc.src.math.sinhf16
- libc.src.math.sinpif16
- libc.src.math.sqrtf16
- libc.src.math.tanf16
- libc.src.math.tanhf16
- libc.src.math.tanpif16
- libc.src.math.totalorderf16
- libc.src.math.totalordermagf16
- libc.src.math.truncf16
- libc.src.math.ufromfpf16
- libc.src.math.ufromfpxf16
- )
-
- if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 mixed _Float16 and _Float128 entrypoints
- libc.src.math.f16addf128
- libc.src.math.f16divf128
- libc.src.math.f16fmaf128
- libc.src.math.f16mulf128
- libc.src.math.f16sqrtf128
- libc.src.math.f16subf128
- )
- endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # complex.h C23 _Complex _Float128 entrypoints
- libc.src.complex.crealf128
- libc.src.complex.cimagf128
- libc.src.complex.conjf128
- libc.src.complex.cprojf128
- )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C23 _Float128 entrypoints
- libc.src.math.atan2f128
- libc.src.math.canonicalizef128
- libc.src.math.ceilf128
- libc.src.math.copysignf128
- libc.src.math.daddf128
- libc.src.math.ddivf128
- libc.src.math.dfmaf128
- libc.src.math.dmulf128
- libc.src.math.dsqrtf128
- libc.src.math.dsubf128
- libc.src.math.fabsf128
- libc.src.math.faddf128
- libc.src.math.fdimf128
- libc.src.math.fdivf128
- libc.src.math.ffmaf128
- libc.src.math.floorf128
- libc.src.math.fmaxf128
- libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
- libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
- libc.src.math.fminf128
- libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
- libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
- libc.src.math.fmodf128
- libc.src.math.fmulf128
- libc.src.math.frexpf128
- libc.src.math.fromfpf128
- libc.src.math.fromfpxf128
- libc.src.math.fsqrtf128
- libc.src.math.fsubf128
- libc.src.math.getpayloadf128
- libc.src.math.ilogbf128
- libc.src.math.iscanonicalf128
- libc.src.math.issignalingf128
- libc.src.math.ldexpf128
- libc.src.math.llogbf128
- libc.src.math.llrintf128
- libc.src.math.llroundf128
- libc.src.math.logbf128
- libc.src.math.lrintf128
- libc.src.math.lroundf128
- libc.src.math.modff128
- libc.src.math.nanf128
- libc.src.math.nearbyintf128
- libc.src.math.nextafterf128
- libc.src.math.nextdownf128
- libc.src.math.nextupf128
- libc.src.math.remainderf128
- libc.src.math.remquof128
- libc.src.math.rintf128
- libc.src.math.roundevenf128
- libc.src.math.roundf128
- libc.src.math.scalblnf128
- libc.src.math.scalbnf128
- libc.src.math.setpayloadf128
- libc.src.math.setpayloadsigf128
- libc.src.math.sqrtf128
- libc.src.math.totalorderf128
- libc.src.math.totalordermagf128
- libc.src.math.truncf128
- libc.src.math.ufromfpf128
- libc.src.math.ufromfpxf128
- )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_FLOAT128)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # math.h C++23 mixed bfloat16 and _Float128 entrypoints
- libc.src.math.bf16addf128
- libc.src.math.bf16divf128
- libc.src.math.bf16fmaf128
- libc.src.math.bf16mulf128
- libc.src.math.bf16subf128
- )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
- list(APPEND TARGET_LIBM_ENTRYPOINTS
- # stdfix.h _Fract and _Accum entrypoints
- libc.src.stdfix.abshk
- libc.src.stdfix.abshr
- libc.src.stdfix.absk
- libc.src.stdfix.abslk
- libc.src.stdfix.abslr
- libc.src.stdfix.absr
- libc.src.stdfix.exphk
- libc.src.stdfix.expk
- libc.src.stdfix.roundhk
- libc.src.stdfix.roundhr
- libc.src.stdfix.roundk
- libc.src.stdfix.roundlk
- libc.src.stdfix.roundlr
- libc.src.stdfix.roundr
- libc.src.stdfix.rounduhk
- libc.src.stdfix.rounduhr
- libc.src.stdfix.rounduk
- libc.src.stdfix.roundulk
- libc.src.stdfix.roundulr
- libc.src.stdfix.roundur
- libc.src.stdfix.sqrtuhk
- libc.src.stdfix.sqrtuhr
- libc.src.stdfix.sqrtuk
- libc.src.stdfix.sqrtur
- # libc.src.stdfix.sqrtulk
- libc.src.stdfix.sqrtulr
- libc.src.stdfix.uhksqrtus
- libc.src.stdfix.uksqrtui
- libc.src.stdfix.hrbits
- libc.src.stdfix.uhrbits
- libc.src.stdfix.rbits
- libc.src.stdfix.urbits
- libc.src.stdfix.lrbits
- libc.src.stdfix.ulrbits
- libc.src.stdfix.hkbits
- libc.src.stdfix.uhkbits
- libc.src.stdfix.kbits
- libc.src.stdfix.ukbits
- libc.src.stdfix.lkbits
- libc.src.stdfix.ulkbits
- libc.src.stdfix.bitshr
- libc.src.stdfix.bitsr
- libc.src.stdfix.bitslr
- libc.src.stdfix.bitshk
- libc.src.stdfix.bitsk
- libc.src.stdfix.bitslk
- libc.src.stdfix.bitsuhr
- libc.src.stdfix.bitsur
- libc.src.stdfix.bitsulr
- libc.src.stdfix.bitsuhk
- libc.src.stdfix.bitsuk
- libc.src.stdfix.bitsulk
- libc.src.stdfix.countlshr
- libc.src.stdfix.countlsr
- libc.src.stdfix.countlslr
- libc.src.stdfix.countlshk
- libc.src.stdfix.countlsk
- libc.src.stdfix.countlslk
- libc.src.stdfix.countlsuhr
- libc.src.stdfix.countlsur
- libc.src.stdfix.countlsulr
- libc.src.stdfix.countlsuhk
- libc.src.stdfix.countlsuk
- libc.src.stdfix.countlsulk
- libc.src.stdfix.idivr
- libc.src.stdfix.idivlr
- libc.src.stdfix.idivk
- libc.src.stdfix.idivlk
- libc.src.stdfix.idivur
- libc.src.stdfix.idivulr
- libc.src.stdfix.idivuk
- libc.src.stdfix.idivulk
- libc.src.stdfix.rdivi
- )
-endif()
-
-if(LLVM_LIBC_FULL_BUILD)
- list(APPEND TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum_l
- libc.src.ctype.isalpha_l
- libc.src.ctype.isblank_l
- libc.src.ctype.iscntrl_l
- libc.src.ctype.isdigit_l
- libc.src.ctype.isgraph_l
- libc.src.ctype.islower_l
- libc.src.ctype.isprint_l
- libc.src.ctype.ispunct_l
- libc.src.ctype.isspace_l
- libc.src.ctype.isupper_l
- libc.src.ctype.isxdigit_l
- libc.src.ctype.tolower_l
- libc.src.ctype.toupper_l
-
- # stdlib.h entrypoints
- libc.src.stdlib.strtod_l
- libc.src.stdlib.strtof_l
- libc.src.stdlib.strtol_l
- libc.src.stdlib.strtold_l
- libc.src.stdlib.strtoll_l
- libc.src.stdlib.strtoul_l
- libc.src.stdlib.strtoull_l
-
- # string.h entrypoints
- libc.src.string.strcoll_l
- libc.src.string.strxfrm_l
-
- # strings.h entrypoints
- libc.src.strings.strcasecmp_l
- libc.src.strings.strncasecmp_l
-
- # assert.h entrypoints
- libc.src.assert.__assert_fail
-
- # compiler entrypoints (no corresponding header)
- libc.src.compiler.__stack_chk_fail
-
- # dirent.h entrypoints
- libc.src.dirent.closedir
- libc.src.dirent.dirfd
- libc.src.dirent.opendir
- libc.src.dirent.readdir
-
- # arpa/inet.h entrypoints
- libc.src.arpa.inet.htonl
- libc.src.arpa.inet.htons
- libc.src.arpa.inet.inet_addr
- libc.src.arpa.inet.inet_aton
- libc.src.arpa.inet.ntohl
- libc.src.arpa.inet.ntohs
-
- # pthread.h entrypoints
- libc.src.pthread.pthread_atfork
- libc.src.pthread.pthread_attr_destroy
- libc.src.pthread.pthread_attr_getdetachstate
- libc.src.pthread.pthread_attr_getguardsize
- libc.src.pthread.pthread_attr_getstack
- libc.src.pthread.pthread_attr_getstacksize
- libc.src.pthread.pthread_attr_init
- libc.src.pthread.pthread_attr_setdetachstate
- libc.src.pthread.pthread_attr_setguardsize
- libc.src.pthread.pthread_attr_setstack
- libc.src.pthread.pthread_attr_setstacksize
- libc.src.pthread.pthread_condattr_destroy
- libc.src.pthread.pthread_condattr_getclock
- libc.src.pthread.pthread_condattr_getpshared
- libc.src.pthread.pthread_condattr_init
- libc.src.pthread.pthread_condattr_setclock
- libc.src.pthread.pthread_condattr_setpshared
- libc.src.pthread.pthread_create
- libc.src.pthread.pthread_detach
- libc.src.pthread.pthread_equal
- libc.src.pthread.pthread_exit
- libc.src.pthread.pthread_getname_np
- libc.src.pthread.pthread_getspecific
- libc.src.pthread.pthread_join
- libc.src.pthread.pthread_key_create
- libc.src.pthread.pthread_key_delete
- libc.src.pthread.pthread_barrier_init
- libc.src.pthread.pthread_barrier_wait
- libc.src.pthread.pthread_barrier_destroy
- libc.src.pthread.pthread_mutex_destroy
- libc.src.pthread.pthread_mutex_init
- libc.src.pthread.pthread_mutex_lock
- libc.src.pthread.pthread_mutex_unlock
- libc.src.pthread.pthread_mutexattr_destroy
- libc.src.pthread.pthread_mutexattr_getpshared
- libc.src.pthread.pthread_mutexattr_getrobust
- libc.src.pthread.pthread_mutexattr_gettype
- libc.src.pthread.pthread_mutexattr_init
- libc.src.pthread.pthread_mutexattr_setpshared
- libc.src.pthread.pthread_mutexattr_setrobust
- libc.src.pthread.pthread_mutexattr_settype
- libc.src.pthread.pthread_once
- libc.src.pthread.pthread_rwlock_clockrdlock
- libc.src.pthread.pthread_rwlock_clockwrlock
- libc.src.pthread.pthread_rwlock_destroy
- libc.src.pthread.pthread_rwlock_init
- libc.src.pthread.pthread_rwlock_rdlock
- libc.src.pthread.pthread_rwlock_timedrdlock
- libc.src.pthread.pthread_rwlock_timedwrlock
- libc.src.pthread.pthread_rwlock_tryrdlock
- libc.src.pthread.pthread_rwlock_trywrlock
- libc.src.pthread.pthread_rwlock_unlock
- libc.src.pthread.pthread_rwlock_wrlock
- libc.src.pthread.pthread_rwlockattr_destroy
- libc.src.pthread.pthread_rwlockattr_getkind_np
- libc.src.pthread.pthread_rwlockattr_getpshared
- libc.src.pthread.pthread_rwlockattr_init
- libc.src.pthread.pthread_rwlockattr_setkind_np
- libc.src.pthread.pthread_rwlockattr_setpshared
- libc.src.pthread.pthread_spin_destroy
- libc.src.pthread.pthread_spin_init
- libc.src.pthread.pthread_spin_lock
- libc.src.pthread.pthread_spin_trylock
- libc.src.pthread.pthread_spin_unlock
- libc.src.pthread.pthread_self
- libc.src.pthread.pthread_setname_np
- libc.src.pthread.pthread_setspecific
-
- # sched.h entrypoints
- libc.src.sched.__sched_getcpucount
- libc.src.sched.__sched_setcpuzero
- libc.src.sched.__sched_setcpuset
- libc.src.sched.__sched_getcpuisset
-
- # setjmp.h entrypoints
- libc.src.setjmp.longjmp
- libc.src.setjmp.setjmp
- libc.src.setjmp.siglongjmp
- libc.src.setjmp.sigsetjmp
-
- # stdio.h entrypoints
- libc.src.stdio.clearerr
- libc.src.stdio.clearerr_unlocked
- libc.src.stdio.fclose
- libc.src.stdio.fdopen
- libc.src.stdio.feof
- libc.src.stdio.feof_unlocked
- libc.src.stdio.ferror
- libc.src.stdio.ferror_unlocked
- libc.src.stdio.fflush
- libc.src.stdio.fgetc
- libc.src.stdio.fgetc_unlocked
- libc.src.stdio.fgets
- libc.src.stdio.fileno
- libc.src.stdio.flockfile
- libc.src.stdio.fopen
- libc.src.stdio.fopencookie
- libc.src.stdio.fputc
- libc.src.stdio.fputs
- libc.src.stdio.fread
- libc.src.stdio.fread_unlocked
- libc.src.stdio.fseek
- libc.src.stdio.fseeko
- libc.src.stdio.ftell
- libc.src.stdio.ftello
- libc.src.stdio.funlockfile
- libc.src.stdio.fwrite
- libc.src.stdio.fwrite_unlocked
- libc.src.stdio.getc
- libc.src.stdio.getc_unlocked
- libc.src.stdio.getchar
- libc.src.stdio.getchar_unlocked
- libc.src.stdio.perror
- libc.src.stdio.putc
- libc.src.stdio.putchar
- libc.src.stdio.puts
- libc.src.stdio.setbuf
- libc.src.stdio.setvbuf
- libc.src.stdio.stderr
- libc.src.stdio.stdin
- libc.src.stdio.stdout
- libc.src.stdio.ungetc
-
- # stdlib.h entrypoints
- libc.src.stdlib._Exit
- libc.src.stdlib.abort
- libc.src.stdlib.at_quick_exit
- libc.src.stdlib.atexit
- libc.src.stdlib.exit
- libc.src.stdlib.getenv
- libc.src.stdlib.mbstowcs
- libc.src.stdlib.mbtowc
- libc.src.stdlib.quick_exit
- libc.src.stdlib.wcstombs
- libc.src.stdlib.wctomb
-
- # signal.h entrypoints
- libc.src.signal.kill
- libc.src.signal.raise
- libc.src.signal.sigaction
- libc.src.signal.sigaddset
- libc.src.signal.sigaltstack
- libc.src.signal.sigdelset
- libc.src.signal.sigemptyset
- libc.src.signal.sigfillset
- libc.src.signal.signal
- libc.src.signal.sigprocmask
-
- # spawn.h entrypoints
- libc.src.spawn.posix_spawn
- libc.src.spawn.posix_spawn_file_actions_addclose
- libc.src.spawn.posix_spawn_file_actions_adddup2
- libc.src.spawn.posix_spawn_file_actions_addopen
- libc.src.spawn.posix_spawn_file_actions_destroy
- libc.src.spawn.posix_spawn_file_actions_init
-
- # search.h entrypoints
- libc.src.search.hcreate
- libc.src.search.hcreate_r
- libc.src.search.hdestroy
- libc.src.search.hdestroy_r
- libc.src.search.hsearch
- libc.src.search.hsearch_r
- libc.src.search.insque
- libc.src.search.lfind
- libc.src.search.lsearch
- libc.src.search.remque
-
- # threads.h entrypoints
- libc.src.threads.call_once
- libc.src.threads.cnd_broadcast
- libc.src.threads.cnd_destroy
- libc.src.threads.cnd_init
- libc.src.threads.cnd_signal
- libc.src.threads.cnd_wait
- libc.src.threads.mtx_destroy
- libc.src.threads.mtx_init
- libc.src.threads.mtx_lock
- libc.src.threads.mtx_unlock
- libc.src.threads.thrd_create
- libc.src.threads.thrd_current
- libc.src.threads.thrd_detach
- libc.src.threads.thrd_equal
- libc.src.threads.thrd_exit
- libc.src.threads.thrd_join
- libc.src.threads.tss_create
- libc.src.threads.tss_delete
- libc.src.threads.tss_get
- libc.src.threads.tss_set
-
- # time.h entrypoints
- libc.src.time.asctime
- libc.src.time.asctime_r
- libc.src.time.ctime
- libc.src.time.ctime_r
- libc.src.time.clock
- libc.src.time.clock_gettime
- libc.src.time.clock_settime
- libc.src.time.difftime
- libc.src.time.gettimeofday
- libc.src.time.gmtime
- libc.src.time.gmtime_r
- libc.src.time.localtime
- libc.src.time.localtime_r
- libc.src.time.mktime
- libc.src.time.nanosleep
- libc.src.time.strftime
- libc.src.time.strftime_l
- libc.src.time.time
- libc.src.time.timespec_get
-
- # locale.h entrypoints
- libc.src.locale.localeconv
- libc.src.locale.duplocale
- libc.src.locale.freelocale
- libc.src.locale.localeconv
- libc.src.locale.newlocale
- libc.src.locale.setlocale
- libc.src.locale.uselocale
-
- # unistd.h entrypoints
- libc.src.unistd.__llvm_libc_syscall
- libc.src.unistd._exit
- libc.src.unistd.environ
- libc.src.unistd.execv
- libc.src.unistd.fork
- libc.src.unistd.getopt
- libc.src.unistd.optarg
- libc.src.unistd.opterr
- libc.src.unistd.optind
- libc.src.unistd.optopt
- libc.src.unistd.swab
-
- # sys/select.h entrypoints
- libc.src.sys.select.select
-
- # sys/socket.h entrypoints
- libc.src.sys.socket.socket
- libc.src.sys.socket.bind
- libc.src.sys.socket.socketpair
- libc.src.sys.socket.send
- libc.src.sys.socket.sendto
- libc.src.sys.socket.sendmsg
- libc.src.sys.socket.recv
- libc.src.sys.socket.recvfrom
- libc.src.sys.socket.recvmsg
-
- # wchar.h entrypoints
- libc.src.wchar.mblen
- libc.src.wchar.mbrlen
- libc.src.wchar.mbsinit
- libc.src.wchar.mbrtowc
- libc.src.wchar.mbsrtowcs
- libc.src.wchar.mbsnrtowcs
- libc.src.wchar.wcrtomb
- libc.src.wchar.wcsrtombs
- libc.src.wchar.wcsnrtombs
-
- # nl_types.h entrypoints
- libc.src.nl_types.catopen
- libc.src.nl_types.catclose
- libc.src.nl_types.catgets
- )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # dlfcn.h entrypoints
+ libc.src.dlfcn.dladdr
+ libc.src.dlfcn.dlclose
+ libc.src.dlfcn.dlerror
+ libc.src.dlfcn.dlopen
+ libc.src.dlfcn.dlsym
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # fcntl.h entrypoints
+ libc.src.fcntl.creat
+ libc.src.fcntl.fcntl
+ libc.src.fcntl.open
+ libc.src.fcntl.openat
+
+ # poll.h entrypoints
+ libc.src.poll.poll
+
+ # sched.h entrypoints
+ libc.src.sched.getcpu
+ libc.src.sched.sched_get_priority_max
+ libc.src.sched.sched_get_priority_min
+ libc.src.sched.sched_getaffinity
+ libc.src.sched.sched_getparam
+ libc.src.sched.sched_getscheduler
+ libc.src.sched.sched_rr_get_interval
+ libc.src.sched.sched_setaffinity
+ libc.src.sched.sched_setparam
+ libc.src.sched.sched_setscheduler
+ libc.src.sched.sched_yield
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.memset_explicit
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcoll
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strdup
+ libc.src.string.strerror
+ libc.src.string.strerror_r
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strndup
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strsep
+ libc.src.string.strsignal
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+ libc.src.string.strxfrm
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.ffs
+ libc.src.strings.ffsl
+ libc.src.strings.ffsll
+ libc.src.strings.index
+ libc.src.strings.rindex
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdbit.h entrypoints
+ libc.src.stdbit.stdc_bit_ceil_uc
+ libc.src.stdbit.stdc_bit_ceil_ui
+ libc.src.stdbit.stdc_bit_ceil_ul
+ libc.src.stdbit.stdc_bit_ceil_ull
+ libc.src.stdbit.stdc_bit_ceil_us
+ libc.src.stdbit.stdc_bit_floor_uc
+ libc.src.stdbit.stdc_bit_floor_ui
+ libc.src.stdbit.stdc_bit_floor_ul
+ libc.src.stdbit.stdc_bit_floor_ull
+ libc.src.stdbit.stdc_bit_floor_us
+ libc.src.stdbit.stdc_bit_width_uc
+ libc.src.stdbit.stdc_bit_width_ui
+ libc.src.stdbit.stdc_bit_width_ul
+ libc.src.stdbit.stdc_bit_width_ull
+ libc.src.stdbit.stdc_bit_width_us
+ libc.src.stdbit.stdc_count_ones_uc
+ libc.src.stdbit.stdc_count_ones_ui
+ libc.src.stdbit.stdc_count_ones_ul
+ libc.src.stdbit.stdc_count_ones_ull
+ libc.src.stdbit.stdc_count_ones_us
+ libc.src.stdbit.stdc_count_zeros_uc
+ libc.src.stdbit.stdc_count_zeros_ui
+ libc.src.stdbit.stdc_count_zeros_ul
+ libc.src.stdbit.stdc_count_zeros_ull
+ libc.src.stdbit.stdc_count_zeros_us
+ libc.src.stdbit.stdc_first_leading_one_uc
+ libc.src.stdbit.stdc_first_leading_one_ui
+ libc.src.stdbit.stdc_first_leading_one_ul
+ libc.src.stdbit.stdc_first_leading_one_ull
+ libc.src.stdbit.stdc_first_leading_one_us
+ libc.src.stdbit.stdc_first_leading_zero_uc
+ libc.src.stdbit.stdc_first_leading_zero_ui
+ libc.src.stdbit.stdc_first_leading_zero_ul
+ libc.src.stdbit.stdc_first_leading_zero_ull
+ libc.src.stdbit.stdc_first_leading_zero_us
+ libc.src.stdbit.stdc_first_trailing_one_uc
+ libc.src.stdbit.stdc_first_trailing_one_ui
+ libc.src.stdbit.stdc_first_trailing_one_ul
+ libc.src.stdbit.stdc_first_trailing_one_ull
+ libc.src.stdbit.stdc_first_trailing_one_us
+ libc.src.stdbit.stdc_first_trailing_zero_uc
+ libc.src.stdbit.stdc_first_trailing_zero_ui
+ libc.src.stdbit.stdc_first_trailing_zero_ul
+ libc.src.stdbit.stdc_first_trailing_zero_ull
+ libc.src.stdbit.stdc_first_trailing_zero_us
+ libc.src.stdbit.stdc_has_single_bit_uc
+ libc.src.stdbit.stdc_has_single_bit_ui
+ libc.src.stdbit.stdc_has_single_bit_ul
+ libc.src.stdbit.stdc_has_single_bit_ull
+ libc.src.stdbit.stdc_has_single_bit_us
+ libc.src.stdbit.stdc_leading_ones_uc
+ libc.src.stdbit.stdc_leading_ones_ui
+ libc.src.stdbit.stdc_leading_ones_ul
+ libc.src.stdbit.stdc_leading_ones_ull
+ libc.src.stdbit.stdc_leading_ones_us
+ libc.src.stdbit.stdc_leading_zeros_uc
+ libc.src.stdbit.stdc_leading_zeros_ui
+ libc.src.stdbit.stdc_leading_zeros_ul
+ libc.src.stdbit.stdc_leading_zeros_ull
+ libc.src.stdbit.stdc_leading_zeros_us
+ libc.src.stdbit.stdc_trailing_ones_uc
+ libc.src.stdbit.stdc_trailing_ones_ui
+ libc.src.stdbit.stdc_trailing_ones_ul
+ libc.src.stdbit.stdc_trailing_ones_ull
+ libc.src.stdbit.stdc_trailing_ones_us
+ libc.src.stdbit.stdc_trailing_zeros_uc
+ libc.src.stdbit.stdc_trailing_zeros_ui
+ libc.src.stdbit.stdc_trailing_zeros_ul
+ libc.src.stdbit.stdc_trailing_zeros_ull
+ libc.src.stdbit.stdc_trailing_zeros_us
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.a64l
+ libc.src.stdlib.abs
+ libc.src.stdlib.atof
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.l64a
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.qsort_r
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.stdlib.strfromd
+ libc.src.stdlib.strfromf
+ libc.src.stdlib.strfroml
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.free
+ libc.src.stdlib.malloc
+ libc.src.stdlib.realloc
+
+ # stdio.h entrypoints
+ libc.src.stdio.fprintf
+ libc.src.stdio.fscanf
+ libc.src.stdio.vfscanf
+ libc.src.stdio.printf
+ libc.src.stdio.remove
+ libc.src.stdio.rename
+ libc.src.stdio.scanf
+ libc.src.stdio.vscanf
+ libc.src.stdio.snprintf
+ libc.src.stdio.sprintf
+ libc.src.stdio.asprintf
+ libc.src.stdio.sscanf
+ libc.src.stdio.vsscanf
+ libc.src.stdio.vfprintf
+ libc.src.stdio.vprintf
+ libc.src.stdio.vsnprintf
+ libc.src.stdio.vsprintf
+ libc.src.stdio.vasprintf
+
+ # sys/epoll.h entrypoints
+ libc.src.sys.epoll.epoll_create
+ libc.src.sys.epoll.epoll_create1
+ libc.src.sys.epoll.epoll_ctl
+ libc.src.sys.epoll.epoll_pwait
+ libc.src.sys.epoll.epoll_wait
+ # TODO: Need to check if pwait2 is available before providing.
+ # https://github.com/llvm/llvm-project/issues/80060
+ # libc.src.sys.epoll.epoll_pwait2
+
+ # sys/ioctl.h entrypoints
+ libc.src.sys.ioctl.ioctl
+
+ # sys/mman.h entrypoints
+ libc.src.sys.mman.madvise
+ libc.src.sys.mman.mincore
+ libc.src.sys.mman.mlock
+ libc.src.sys.mman.mlock2
+ libc.src.sys.mman.mlockall
+ libc.src.sys.mman.mmap
+ libc.src.sys.mman.mremap
+ libc.src.sys.mman.mprotect
+ libc.src.sys.mman.msync
+ libc.src.sys.mman.munlock
+ libc.src.sys.mman.munlockall
+ libc.src.sys.mman.munmap
+ libc.src.sys.mman.pkey_alloc
+ libc.src.sys.mman.pkey_free
+ libc.src.sys.mman.pkey_get
+ libc.src.sys.mman.pkey_mprotect
+ libc.src.sys.mman.pkey_set
+ libc.src.sys.mman.remap_file_pages
+ libc.src.sys.mman.posix_madvise
+ libc.src.sys.mman.shm_open
+ libc.src.sys.mman.shm_unlink
+
+ # sys/random.h entrypoints
+ libc.src.sys.random.getrandom
+
+ # sys/resource.h entrypoints
+ libc.src.sys.resource.getrlimit
+ libc.src.sys.resource.setrlimit
+
+ # sys/sendfile entrypoints
+ libc.src.sys.sendfile.sendfile
+
+ # sys/stat.h entrypoints
+ libc.src.sys.stat.chmod
+ libc.src.sys.stat.fchmod
+ libc.src.sys.stat.fchmodat
+ libc.src.sys.stat.fstat
+ libc.src.sys.stat.lstat
+ libc.src.sys.stat.mkdir
+ libc.src.sys.stat.mkdirat
+ libc.src.sys.stat.stat
+
+ # sys/statvfs.h
+ libc.src.sys.statvfs.fstatvfs
+ libc.src.sys.statvfs.statvfs
+
+ # sys/utimes.h entrypoints
+ libc.src.sys.time.utimes
+
+ # sys/utsname.h entrypoints
+ libc.src.sys.utsname.uname
+
+ # sys/wait.h entrypoints
+ libc.src.sys.wait.wait
+ libc.src.sys.wait.wait4
+ libc.src.sys.wait.waitpid
+
+ # sys/prctl.h entrypoints
+ libc.src.sys.prctl.prctl
+
+ # sys/auxv.h entrypoints
+ libc.src.sys.auxv.getauxval
+
+ # termios.h entrypoints
+ libc.src.termios.cfgetispeed
+ libc.src.termios.cfgetospeed
+ libc.src.termios.cfsetispeed
+ libc.src.termios.cfsetospeed
+ libc.src.termios.tcdrain
+ libc.src.termios.tcflow
+ libc.src.termios.tcflush
+ libc.src.termios.tcgetattr
+ libc.src.termios.tcgetsid
+ libc.src.termios.tcsendbreak
+ libc.src.termios.tcsetattr
+
+ # unistd.h entrypoints
+ libc.src.unistd.access
+ libc.src.unistd.chdir
+ libc.src.unistd.chown
+ libc.src.unistd.close
+ libc.src.unistd.dup
+ libc.src.unistd.dup2
+ libc.src.unistd.dup3
+ libc.src.unistd.execve
+ libc.src.unistd.faccessat
+ libc.src.unistd.fchdir
+ libc.src.unistd.fchown
+ libc.src.unistd.fpathconf
+ libc.src.unistd.fsync
+ libc.src.unistd.ftruncate
+ libc.src.unistd.getcwd
+ libc.src.unistd.getentropy
+ libc.src.unistd.geteuid
+ libc.src.unistd.gethostname
+ libc.src.unistd.getpagesize
+ libc.src.unistd.getpid
+ libc.src.unistd.getppid
+ libc.src.unistd.getsid
+ libc.src.unistd.gettid
+ libc.src.unistd.getgid
+ libc.src.unistd.getuid
+ libc.src.unistd.isatty
+ libc.src.unistd.link
+ libc.src.unistd.linkat
+ libc.src.unistd.lseek
+ libc.src.unistd.pathconf
+ libc.src.unistd.pipe
+ libc.src.unistd.pipe2
+ libc.src.unistd.pread
+ libc.src.unistd.pwrite
+ libc.src.unistd.read
+ libc.src.unistd.readlink
+ libc.src.unistd.readlinkat
+ libc.src.unistd.rmdir
+ libc.src.unistd.setsid
+ libc.src.unistd.symlink
+ libc.src.unistd.symlinkat
+ libc.src.unistd.sysconf
+ libc.src.unistd.truncate
+ libc.src.unistd.unlink
+ libc.src.unistd.unlinkat
+ libc.src.unistd.write
+
+ # wchar.h entrypoints
+ libc.src.wchar.btowc
+ libc.src.wchar.wcslen
+ libc.src.wchar.wcsnlen
+ libc.src.wchar.wctob
+ libc.src.wchar.wmemmove
+ libc.src.wchar.wmemset
+ libc.src.wchar.wcschr
+ libc.src.wchar.wcsncmp
+ libc.src.wchar.wcscmp
+ libc.src.wchar.wcspbrk
+ libc.src.wchar.wcsrchr
+ libc.src.wchar.wcsspn
+ libc.src.wchar.wcscspn
+ libc.src.wchar.wcsdup
+ libc.src.wchar.wmemcmp
+ libc.src.wchar.wmempcpy
+ libc.src.wchar.wmemcpy
+ libc.src.wchar.wcsncpy
+ libc.src.wchar.wcscat
+ libc.src.wchar.wcsstr
+ libc.src.wchar.wcsncat
+ libc.src.wchar.wcslcat
+ libc.src.wchar.wcscpy
+ libc.src.wchar.wcslcpy
+ libc.src.wchar.wmemchr
+ libc.src.wchar.wcpcpy
+ libc.src.wchar.wcpncpy
+ libc.src.wchar.wcstod
+ libc.src.wchar.wcstof
+ libc.src.wchar.wcstok
+ libc.src.wchar.wcstol
+ libc.src.wchar.wcstold
+ libc.src.wchar.wcstoll
+ libc.src.wchar.wcstoul
+ libc.src.wchar.wcstoull
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+
+ # sys/uio.h entrypoints
+ libc.src.sys.uio.writev
+ libc.src.sys.uio.readv
+
+ # sys/time.h entrypoints
+ libc.src.sys.time.setitimer
+ libc.src.sys.time.getitimer
+)
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # malloc.h external entrypoints
+ libc.src.stdlib.mallopt
+ )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # complex.h entrypoints
+ libc.src.complex.creal
+ libc.src.complex.crealf
+ libc.src.complex.creall
+ libc.src.complex.cimag
+ libc.src.complex.cimagf
+ libc.src.complex.cimagl
+ libc.src.complex.conj
+ libc.src.complex.conjf
+ libc.src.complex.conjl
+ libc.src.complex.cproj
+ libc.src.complex.cprojf
+ libc.src.complex.cprojl
+
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.canonicalize
+ libc.src.math.canonicalizef
+ libc.src.math.canonicalizel
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.cospif
+ libc.src.math.dfmal
+ libc.src.math.dmull
+ libc.src.math.dsqrtl
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp10m1f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.exp2m1f
+ libc.src.math.expf
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fadd
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaximum
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaxl
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminimum
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminl
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.fmul
+ libc.src.math.fmull
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fromfp
+ libc.src.math.fromfpf
+ libc.src.math.fromfpl
+ libc.src.math.fromfpx
+ libc.src.math.fromfpxf
+ libc.src.math.fromfpxl
+ libc.src.math.fsqrt
+ libc.src.math.fsqrtl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.getpayload
+ libc.src.math.getpayloadf
+ libc.src.math.getpayloadl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.iscanonical
+ libc.src.math.iscanonicalf
+ libc.src.math.iscanonicall
+ libc.src.math.isnan
+ libc.src.math.isnanf
+ libc.src.math.isnanl
+ libc.src.math.issignaling
+ libc.src.math.issignalingf
+ libc.src.math.issignalingl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llogb
+ libc.src.math.llogbf
+ libc.src.math.llogbl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.logf
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nextdown
+ libc.src.math.nextdownf
+ libc.src.math.nextdownl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.nextup
+ libc.src.math.nextupf
+ libc.src.math.nextupl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainder
+ libc.src.math.remainderf
+ libc.src.math.remainderl
+ libc.src.math.remquo
+ libc.src.math.remquof
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundeven
+ libc.src.math.roundevenf
+ libc.src.math.roundevenl
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.setpayload
+ libc.src.math.setpayloadf
+ libc.src.math.setpayloadl
+ libc.src.math.setpayloadsig
+ libc.src.math.setpayloadsigf
+ libc.src.math.setpayloadsigl
+ libc.src.math.sin
+ libc.src.math.sincos
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sinpif
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.totalorder
+ libc.src.math.totalorderf
+ libc.src.math.totalorderl
+ libc.src.math.totalordermag
+ libc.src.math.totalordermagf
+ libc.src.math.totalordermagl
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+ libc.src.math.ufromfp
+ libc.src.math.ufromfpf
+ libc.src.math.ufromfpl
+ libc.src.math.ufromfpx
+ libc.src.math.ufromfpxf
+ libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float16 entrypoints
+ libc.src.complex.crealf16
+ libc.src.complex.cimagf16
+ libc.src.complex.conjf16
+ libc.src.complex.cprojf16
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float16 entrypoints
+ libc.src.math.acosf16
+ libc.src.math.acoshf16
+ libc.src.math.acospif16
+ libc.src.math.asinf16
+ libc.src.math.asinhf16
+ libc.src.math.asinpif16
+ libc.src.math.atanf16
+ libc.src.math.atanhf16
+ libc.src.math.atanpif16
+ libc.src.math.canonicalizef16
+ libc.src.math.ceilf16
+ libc.src.math.copysignf16
+ libc.src.math.cosf16
+ libc.src.math.coshf16
+ libc.src.math.cospif16
+ libc.src.math.exp10f16
+ libc.src.math.exp10m1f16
+ libc.src.math.exp2f16
+ libc.src.math.exp2m1f16
+ libc.src.math.expf16
+ libc.src.math.expm1f16
+ libc.src.math.f16add
+ libc.src.math.f16addf
+ libc.src.math.f16addl
+ libc.src.math.f16div
+ libc.src.math.f16divf
+ libc.src.math.f16divl
+ libc.src.math.f16fma
+ libc.src.math.f16fmaf
+ libc.src.math.f16fmal
+ libc.src.math.f16mul
+ libc.src.math.f16mulf
+ libc.src.math.f16mull
+ libc.src.math.f16sqrt
+ libc.src.math.f16sqrtf
+ libc.src.math.f16sqrtl
+ libc.src.math.f16sub
+ libc.src.math.f16subf
+ libc.src.math.f16subl
+ libc.src.math.fabsf16
+ libc.src.math.fdimf16
+ libc.src.math.floorf16
+ libc.src.math.fmaf16
+ libc.src.math.fmaxf16
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.math.fmaximum_magf16
+ libc.src.math.fmaximum_numf16
+ libc.src.math.fmaximumf16
+ libc.src.math.fminf16
+ libc.src.math.fminimum_mag_numf16
+ libc.src.math.fminimum_magf16
+ libc.src.math.fminimum_numf16
+ libc.src.math.fminimumf16
+ libc.src.math.fmodf16
+ libc.src.math.frexpf16
+ libc.src.math.fromfpf16
+ libc.src.math.fromfpxf16
+ libc.src.math.getpayloadf16
+ libc.src.math.hypotf16
+ libc.src.math.ilogbf16
+ libc.src.math.iscanonicalf16
+ libc.src.math.issignalingf16
+ libc.src.math.ldexpf16
+ libc.src.math.llogbf16
+ libc.src.math.llrintf16
+ libc.src.math.llroundf16
+ libc.src.math.log10f16
+ libc.src.math.log2f16
+ libc.src.math.logbf16
+ libc.src.math.logf16
+ libc.src.math.lrintf16
+ libc.src.math.lroundf16
+ libc.src.math.modff16
+ libc.src.math.nanf16
+ libc.src.math.nearbyintf16
+ libc.src.math.nextafterf16
+ libc.src.math.nextdownf16
+ libc.src.math.nexttowardf16
+ libc.src.math.nextupf16
+ libc.src.math.remainderf16
+ libc.src.math.remquof16
+ libc.src.math.rintf16
+ libc.src.math.roundevenf16
+ libc.src.math.roundf16
+ libc.src.math.rsqrtf
+ libc.src.math.rsqrtf16
+ libc.src.math.scalblnf16
+ libc.src.math.scalbnf16
+ libc.src.math.setpayloadf16
+ libc.src.math.setpayloadsigf16
+ libc.src.math.sinf16
+ libc.src.math.sinhf16
+ libc.src.math.sinpif16
+ libc.src.math.sqrtf16
+ libc.src.math.tanf16
+ libc.src.math.tanhf16
+ libc.src.math.tanpif16
+ libc.src.math.totalorderf16
+ libc.src.math.totalordermagf16
+ libc.src.math.truncf16
+ libc.src.math.ufromfpf16
+ libc.src.math.ufromfpxf16
+ )
+
+ if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 mixed _Float16 and _Float128 entrypoints
+ libc.src.math.f16addf128
+ libc.src.math.f16divf128
+ libc.src.math.f16fmaf128
+ libc.src.math.f16mulf128
+ libc.src.math.f16sqrtf128
+ libc.src.math.f16subf128
+ )
+ endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # complex.h C23 _Complex _Float128 entrypoints
+ libc.src.complex.crealf128
+ libc.src.complex.cimagf128
+ libc.src.complex.conjf128
+ libc.src.complex.cprojf128
+ )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C23 _Float128 entrypoints
+ libc.src.math.atan2f128
+ libc.src.math.canonicalizef128
+ libc.src.math.ceilf128
+ libc.src.math.copysignf128
+ libc.src.math.daddf128
+ libc.src.math.ddivf128
+ libc.src.math.dfmaf128
+ libc.src.math.dmulf128
+ libc.src.math.dsqrtf128
+ libc.src.math.dsubf128
+ libc.src.math.fabsf128
+ libc.src.math.faddf128
+ libc.src.math.fdimf128
+ libc.src.math.fdivf128
+ libc.src.math.ffmaf128
+ libc.src.math.floorf128
+ libc.src.math.fmaxf128
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.math.fmaximum_magf128
+ libc.src.math.fmaximum_numf128
+ libc.src.math.fmaximumf128
+ libc.src.math.fminf128
+ libc.src.math.fminimum_mag_numf128
+ libc.src.math.fminimum_magf128
+ libc.src.math.fminimum_numf128
+ libc.src.math.fminimumf128
+ libc.src.math.fmodf128
+ libc.src.math.fmulf128
+ libc.src.math.frexpf128
+ libc.src.math.fromfpf128
+ libc.src.math.fromfpxf128
+ libc.src.math.fsqrtf128
+ libc.src.math.fsubf128
+ libc.src.math.getpayloadf128
+ libc.src.math.ilogbf128
+ libc.src.math.iscanonicalf128
+ libc.src.math.issignalingf128
+ libc.src.math.ldexpf128
+ libc.src.math.llogbf128
+ libc.src.math.llrintf128
+ libc.src.math.llroundf128
+ libc.src.math.logbf128
+ libc.src.math.lrintf128
+ libc.src.math.lroundf128
+ libc.src.math.modff128
+ libc.src.math.nanf128
+ libc.src.math.nearbyintf128
+ libc.src.math.nextafterf128
+ libc.src.math.nextdownf128
+ libc.src.math.nextupf128
+ libc.src.math.remainderf128
+ libc.src.math.remquof128
+ libc.src.math.rintf128
+ libc.src.math.roundevenf128
+ libc.src.math.roundf128
+ libc.src.math.scalblnf128
+ libc.src.math.scalbnf128
+ libc.src.math.setpayloadf128
+ libc.src.math.setpayloadsigf128
+ libc.src.math.sqrtf128
+ libc.src.math.totalorderf128
+ libc.src.math.totalordermagf128
+ libc.src.math.truncf128
+ libc.src.math.ufromfpf128
+ libc.src.math.ufromfpxf128
+ )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_FLOAT128)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+ libc.src.math.bf16addf128
+ libc.src.math.bf16divf128
+ libc.src.math.bf16fmaf128
+ libc.src.math.bf16mulf128
+ libc.src.math.bf16subf128
+ )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # stdfix.h _Fract and _Accum entrypoints
+ libc.src.stdfix.abshk
+ libc.src.stdfix.abshr
+ libc.src.stdfix.absk
+ libc.src.stdfix.abslk
+ libc.src.stdfix.abslr
+ libc.src.stdfix.absr
+ libc.src.stdfix.exphk
+ libc.src.stdfix.expk
+ libc.src.stdfix.roundhk
+ libc.src.stdfix.roundhr
+ libc.src.stdfix.roundk
+ libc.src.stdfix.roundlk
+ libc.src.stdfix.roundlr
+ libc.src.stdfix.roundr
+ libc.src.stdfix.rounduhk
+ libc.src.stdfix.rounduhr
+ libc.src.stdfix.rounduk
+ libc.src.stdfix.roundulk
+ libc.src.stdfix.roundulr
+ libc.src.stdfix.roundur
+ libc.src.stdfix.sqrtuhk
+ libc.src.stdfix.sqrtuhr
+ libc.src.stdfix.sqrtuk
+ libc.src.stdfix.sqrtur
+ # libc.src.stdfix.sqrtulk
+ libc.src.stdfix.sqrtulr
+ libc.src.stdfix.uhksqrtus
+ libc.src.stdfix.uksqrtui
+ libc.src.stdfix.hrbits
+ libc.src.stdfix.uhrbits
+ libc.src.stdfix.rbits
+ libc.src.stdfix.urbits
+ libc.src.stdfix.lrbits
+ libc.src.stdfix.ulrbits
+ libc.src.stdfix.hkbits
+ libc.src.stdfix.uhkbits
+ libc.src.stdfix.kbits
+ libc.src.stdfix.ukbits
+ libc.src.stdfix.lkbits
+ libc.src.stdfix.ulkbits
+ libc.src.stdfix.bitshr
+ libc.src.stdfix.bitsr
+ libc.src.stdfix.bitslr
+ libc.src.stdfix.bitshk
+ libc.src.stdfix.bitsk
+ libc.src.stdfix.bitslk
+ libc.src.stdfix.bitsuhr
+ libc.src.stdfix.bitsur
+ libc.src.stdfix.bitsulr
+ libc.src.stdfix.bitsuhk
+ libc.src.stdfix.bitsuk
+ libc.src.stdfix.bitsulk
+ libc.src.stdfix.countlshr
+ libc.src.stdfix.countlsr
+ libc.src.stdfix.countlslr
+ libc.src.stdfix.countlshk
+ libc.src.stdfix.countlsk
+ libc.src.stdfix.countlslk
+ libc.src.stdfix.countlsuhr
+ libc.src.stdfix.countlsur
+ libc.src.stdfix.countlsulr
+ libc.src.stdfix.countlsuhk
+ libc.src.stdfix.countlsuk
+ libc.src.stdfix.countlsulk
+ libc.src.stdfix.idivr
+ libc.src.stdfix.idivlr
+ libc.src.stdfix.idivk
+ libc.src.stdfix.idivlk
+ libc.src.stdfix.idivur
+ libc.src.stdfix.idivulr
+ libc.src.stdfix.idivuk
+ libc.src.stdfix.idivulk
+ libc.src.stdfix.rdivi
+ )
+endif()
+
+if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum_l
+ libc.src.ctype.isalpha_l
+ libc.src.ctype.isblank_l
+ libc.src.ctype.iscntrl_l
+ libc.src.ctype.isdigit_l
+ libc.src.ctype.isgraph_l
+ libc.src.ctype.islower_l
+ libc.src.ctype.isprint_l
+ libc.src.ctype.ispunct_l
+ libc.src.ctype.isspace_l
+ libc.src.ctype.isupper_l
+ libc.src.ctype.isxdigit_l
+ libc.src.ctype.tolower_l
+ libc.src.ctype.toupper_l
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.strtod_l
+ libc.src.stdlib.strtof_l
+ libc.src.stdlib.strtol_l
+ libc.src.stdlib.strtold_l
+ libc.src.stdlib.strtoll_l
+ libc.src.stdlib.strtoul_l
+ libc.src.stdlib.strtoull_l
+
+ # string.h entrypoints
+ libc.src.string.strcoll_l
+ libc.src.string.strxfrm_l
+
+ # strings.h entrypoints
+ libc.src.strings.strcasecmp_l
+ libc.src.strings.strncasecmp_l
+
+ # assert.h entrypoints
+ libc.src.assert.__assert_fail
+
+ # compiler entrypoints (no corresponding header)
+ libc.src.compiler.__stack_chk_fail
+
+ # dirent.h entrypoints
+ libc.src.dirent.closedir
+ libc.src.dirent.dirfd
+ libc.src.dirent.opendir
+ libc.src.dirent.readdir
+
+ # arpa/inet.h entrypoints
+ libc.src.arpa.inet.htonl
+ libc.src.arpa.inet.htons
+ libc.src.arpa.inet.inet_addr
+ libc.src.arpa.inet.inet_aton
+ libc.src.arpa.inet.ntohl
+ libc.src.arpa.inet.ntohs
+
+ # pthread.h entrypoints
+ libc.src.pthread.pthread_atfork
+ libc.src.pthread.pthread_attr_destroy
+ libc.src.pthread.pthread_attr_getdetachstate
+ libc.src.pthread.pthread_attr_getguardsize
+ libc.src.pthread.pthread_attr_getstack
+ libc.src.pthread.pthread_attr_getstacksize
+ libc.src.pthread.pthread_attr_init
+ libc.src.pthread.pthread_attr_setdetachstate
+ libc.src.pthread.pthread_attr_setguardsize
+ libc.src.pthread.pthread_attr_setstack
+ libc.src.pthread.pthread_attr_setstacksize
+ libc.src.pthread.pthread_condattr_destroy
+ libc.src.pthread.pthread_condattr_getclock
+ libc.src.pthread.pthread_condattr_getpshared
+ libc.src.pthread.pthread_condattr_init
+ libc.src.pthread.pthread_condattr_setclock
+ libc.src.pthread.pthread_condattr_setpshared
+ libc.src.pthread.pthread_create
+ libc.src.pthread.pthread_detach
+ libc.src.pthread.pthread_equal
+ libc.src.pthread.pthread_exit
+ libc.src.pthread.pthread_getname_np
+ libc.src.pthread.pthread_getspecific
+ libc.src.pthread.pthread_join
+ libc.src.pthread.pthread_key_create
+ libc.src.pthread.pthread_key_delete
+ libc.src.pthread.pthread_barrier_init
+ libc.src.pthread.pthread_barrier_wait
+ libc.src.pthread.pthread_barrier_destroy
+ libc.src.pthread.pthread_mutex_destroy
+ libc.src.pthread.pthread_mutex_init
+ libc.src.pthread.pthread_mutex_lock
+ libc.src.pthread.pthread_mutex_unlock
+ libc.src.pthread.pthread_mutexattr_destroy
+ libc.src.pthread.pthread_mutexattr_getpshared
+ libc.src.pthread.pthread_mutexattr_getrobust
+ libc.src.pthread.pthread_mutexattr_gettype
+ libc.src.pthread.pthread_mutexattr_init
+ libc.src.pthread.pthread_mutexattr_setpshared
+ libc.src.pthread.pthread_mutexattr_setrobust
+ libc.src.pthread.pthread_mutexattr_settype
+ libc.src.pthread.pthread_once
+ libc.src.pthread.pthread_rwlock_clockrdlock
+ libc.src.pthread.pthread_rwlock_clockwrlock
+ libc.src.pthread.pthread_rwlock_destroy
+ libc.src.pthread.pthread_rwlock_init
+ libc.src.pthread.pthread_rwlock_rdlock
+ libc.src.pthread.pthread_rwlock_timedrdlock
+ libc.src.pthread.pthread_rwlock_timedwrlock
+ libc.src.pthread.pthread_rwlock_tryrdlock
+ libc.src.pthread.pthread_rwlock_trywrlock
+ libc.src.pthread.pthread_rwlock_unlock
+ libc.src.pthread.pthread_rwlock_wrlock
+ libc.src.pthread.pthread_rwlockattr_destroy
+ libc.src.pthread.pthread_rwlockattr_getkind_np
+ libc.src.pthread.pthread_rwlockattr_getpshared
+ libc.src.pthread.pthread_rwlockattr_init
+ libc.src.pthread.pthread_rwlockattr_setkind_np
+ libc.src.pthread.pthread_rwlockattr_setpshared
+ libc.src.pthread.pthread_spin_destroy
+ libc.src.pthread.pthread_spin_init
+ libc.src.pthread.pthread_spin_lock
+ libc.src.pthread.pthread_spin_trylock
+ libc.src.pthread.pthread_spin_unlock
+ libc.src.pthread.pthread_self
+ libc.src.pthread.pthread_setname_np
+ libc.src.pthread.pthread_setspecific
+
+ # sched.h entrypoints
+ libc.src.sched.__sched_getcpucount
+ libc.src.sched.__sched_setcpuzero
+ libc.src.sched.__sched_setcpuset
+ libc.src.sched.__sched_getcpuisset
+
+ # setjmp.h entrypoints
+ libc.src.setjmp.longjmp
+ libc.src.setjmp.setjmp
+ libc.src.setjmp.siglongjmp
+ libc.src.setjmp.sigsetjmp
+
+ # stdio.h entrypoints
+ libc.src.stdio.clearerr
+ libc.src.stdio.clearerr_unlocked
+ libc.src.stdio.fclose
+ libc.src.stdio.fdopen
+ libc.src.stdio.feof
+ libc.src.stdio.feof_unlocked
+ libc.src.stdio.ferror
+ libc.src.stdio.ferror_unlocked
+ libc.src.stdio.fflush
+ libc.src.stdio.fgetc
+ libc.src.stdio.fgetc_unlocked
+ libc.src.stdio.fgets
+ libc.src.stdio.fileno
+ libc.src.stdio.flockfile
+ libc.src.stdio.fopen
+ libc.src.stdio.fopencookie
+ libc.src.stdio.fputc
+ libc.src.stdio.fputs
+ libc.src.stdio.fread
+ libc.src.stdio.fread_unlocked
+ libc.src.stdio.fseek
+ libc.src.stdio.fseeko
+ libc.src.stdio.ftell
+ libc.src.stdio.ftello
+ libc.src.stdio.funlockfile
+ libc.src.stdio.fwrite
+ libc.src.stdio.fwrite_unlocked
+ libc.src.stdio.getc
+ libc.src.stdio.getc_unlocked
+ libc.src.stdio.getchar
+ libc.src.stdio.getchar_unlocked
+ libc.src.stdio.perror
+ libc.src.stdio.putc
+ libc.src.stdio.putchar
+ libc.src.stdio.puts
+ libc.src.stdio.setbuf
+ libc.src.stdio.setvbuf
+ libc.src.stdio.stderr
+ libc.src.stdio.stdin
+ libc.src.stdio.stdout
+ libc.src.stdio.ungetc
+
+ # stdlib.h entrypoints
+ libc.src.stdlib._Exit
+ libc.src.stdlib.abort
+ libc.src.stdlib.at_quick_exit
+ libc.src.stdlib.atexit
+ libc.src.stdlib.exit
+ libc.src.stdlib.getenv
+ libc.src.stdlib.mbstowcs
+ libc.src.stdlib.mbtowc
+ libc.src.stdlib.quick_exit
+ libc.src.stdlib.wcstombs
+ libc.src.stdlib.wctomb
+
+ # signal.h entrypoints
+ libc.src.signal.kill
+ libc.src.signal.raise
+ libc.src.signal.sigaction
+ libc.src.signal.sigaddset
+ libc.src.signal.sigaltstack
+ libc.src.signal.sigdelset
+ libc.src.signal.sigemptyset
+ libc.src.signal.sigfillset
+ libc.src.signal.signal
+ libc.src.signal.sigprocmask
+
+ # spawn.h entrypoints
+ libc.src.spawn.posix_spawn
+ libc.src.spawn.posix_spawn_file_actions_addclose
+ libc.src.spawn.posix_spawn_file_actions_adddup2
+ libc.src.spawn.posix_spawn_file_actions_addopen
+ libc.src.spawn.posix_spawn_file_actions_destroy
+ libc.src.spawn.posix_spawn_file_actions_init
+
+ # search.h entrypoints
+ libc.src.search.hcreate
+ libc.src.search.hcreate_r
+ libc.src.search.hdestroy
+ libc.src.search.hdestroy_r
+ libc.src.search.hsearch
+ libc.src.search.hsearch_r
+ libc.src.search.insque
+ libc.src.search.lfind
+ libc.src.search.lsearch
+ libc.src.search.remque
+
+ # threads.h entrypoints
+ libc.src.threads.call_once
+ libc.src.threads.cnd_broadcast
+ libc.src.threads.cnd_destroy
+ libc.src.threads.cnd_init
+ libc.src.threads.cnd_signal
+ libc.src.threads.cnd_wait
+ libc.src.threads.mtx_destroy
+ libc.src.threads.mtx_init
+ libc.src.threads.mtx_lock
+ libc.src.threads.mtx_unlock
+ libc.src.threads.thrd_create
+ libc.src.threads.thrd_current
+ libc.src.threads.thrd_detach
+ libc.src.threads.thrd_equal
+ libc.src.threads.thrd_exit
+ libc.src.threads.thrd_join
+ libc.src.threads.tss_create
+ libc.src.threads.tss_delete
+ libc.src.threads.tss_get
+ libc.src.threads.tss_set
+
+ # time.h entrypoints
+ libc.src.time.asctime
+ libc.src.time.asctime_r
+ libc.src.time.ctime
+ libc.src.time.ctime_r
+ libc.src.time.clock
+ libc.src.time.clock_gettime
+ libc.src.time.clock_settime
+ libc.src.time.difftime
+ libc.src.time.gettimeofday
+ libc.src.time.gmtime
+ libc.src.time.gmtime_r
+ libc.src.time.localtime
+ libc.src.time.localtime_r
+ libc.src.time.mktime
+ libc.src.time.nanosleep
+ libc.src.time.strftime
+ libc.src.time.strftime_l
+ libc.src.time.time
+ libc.src.time.timespec_get
+
+ # locale.h entrypoints
+ libc.src.locale.localeconv
+ libc.src.locale.duplocale
+ libc.src.locale.freelocale
+ libc.src.locale.localeconv
+ libc.src.locale.newlocale
+ libc.src.locale.setlocale
+ libc.src.locale.uselocale
+
+ # unistd.h entrypoints
+ libc.src.unistd.__llvm_libc_syscall
+ libc.src.unistd._exit
+ libc.src.unistd.environ
+ libc.src.unistd.execv
+ libc.src.unistd.fork
+ libc.src.unistd.getopt
+ libc.src.unistd.optarg
+ libc.src.unistd.opterr
+ libc.src.unistd.optind
+ libc.src.unistd.optopt
+ libc.src.unistd.swab
+
+ # sys/select.h entrypoints
+ libc.src.sys.select.select
+
+ # sys/socket.h entrypoints
+ libc.src.sys.socket.socket
+ libc.src.sys.socket.bind
+ libc.src.sys.socket.socketpair
+ libc.src.sys.socket.send
+ libc.src.sys.socket.sendto
+ libc.src.sys.socket.sendmsg
+ libc.src.sys.socket.recv
+ libc.src.sys.socket.recvfrom
+ libc.src.sys.socket.recvmsg
+
+ # wchar.h entrypoints
+ libc.src.wchar.mblen
+ libc.src.wchar.mbrlen
+ libc.src.wchar.mbsinit
+ libc.src.wchar.mbrtowc
+ libc.src.wchar.mbsrtowcs
+ libc.src.wchar.mbsnrtowcs
+ libc.src.wchar.wcrtomb
+ libc.src.wchar.wcsrtombs
+ libc.src.wchar.wcsnrtombs
+
+ # nl_types.h entrypoints
+ libc.src.nl_types.catopen
+ libc.src.nl_types.catclose
+ libc.src.nl_types.catgets
+ )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt
index 847e22889303a..faf3c5df24b7a 100644
--- a/libc/config/windows/entrypoints.txt
+++ b/libc/config/windows/entrypoints.txt
@@ -1,385 +1,385 @@
-set(TARGET_LIBC_ENTRYPOINTS
- # ctype.h entrypoints
- libc.src.ctype.isalnum
- libc.src.ctype.isalpha
- libc.src.ctype.isascii
- libc.src.ctype.isblank
- libc.src.ctype.iscntrl
- libc.src.ctype.isdigit
- libc.src.ctype.isgraph
- libc.src.ctype.islower
- libc.src.ctype.isprint
- libc.src.ctype.ispunct
- libc.src.ctype.isspace
- libc.src.ctype.isupper
- libc.src.ctype.isxdigit
- libc.src.ctype.toascii
- libc.src.ctype.tolower
- libc.src.ctype.toupper
-
- # string.h entrypoints
- libc.src.string.memccpy
- libc.src.string.memchr
- libc.src.string.memcmp
- libc.src.string.memcpy
- libc.src.string.memmem
- libc.src.string.memmove
- libc.src.string.mempcpy
- libc.src.string.memrchr
- libc.src.string.memset
- libc.src.string.stpcpy
- libc.src.string.stpncpy
- libc.src.string.strcasestr
- libc.src.string.strcat
- libc.src.string.strchr
- libc.src.string.strchrnul
- libc.src.string.strcmp
- libc.src.string.strcpy
- libc.src.string.strcspn
- libc.src.string.strlcat
- libc.src.string.strlcpy
- libc.src.string.strlen
- libc.src.string.strncat
- libc.src.string.strncmp
- libc.src.string.strncpy
- libc.src.string.strnlen
- libc.src.string.strpbrk
- libc.src.string.strrchr
- libc.src.string.strspn
- libc.src.string.strstr
- libc.src.string.strtok
- libc.src.string.strtok_r
-
- # string.h entrypoints that depend on malloc
- libc.src.string.strdup
- libc.src.string.strndup
-
- # strings.h entrypoints
- libc.src.strings.bcmp
- libc.src.strings.bcopy
- libc.src.strings.bzero
- libc.src.strings.strcasecmp
- libc.src.strings.strncasecmp
-
- # inttypes.h entrypoints
- libc.src.inttypes.imaxabs
- libc.src.inttypes.imaxdiv
- libc.src.inttypes.strtoimax
- libc.src.inttypes.strtoumax
-
- # stdlib.h entrypoints
- libc.src.stdlib.abs
- libc.src.stdlib.atoi
- libc.src.stdlib.atof
- libc.src.stdlib.atol
- libc.src.stdlib.atoll
- libc.src.stdlib.bsearch
- libc.src.stdlib.div
- libc.src.stdlib.labs
- libc.src.stdlib.ldiv
- libc.src.stdlib.llabs
- libc.src.stdlib.lldiv
- libc.src.stdlib.memalignment
- libc.src.stdlib.qsort
- libc.src.stdlib.strtod
- libc.src.stdlib.strtof
- libc.src.stdlib.strtol
- libc.src.stdlib.strtold
- libc.src.stdlib.strtoll
- libc.src.stdlib.strtoul
- libc.src.stdlib.strtoull
-
- # stdlib.h external entrypoints
- libc.src.stdlib.malloc
- libc.src.stdlib.calloc
- libc.src.stdlib.realloc
- libc.src.stdlib.aligned_alloc
- libc.src.stdlib.free
-
- # errno.h entrypoints
- libc.src.errno.errno
-
- # time.h entrypoints
- libc.src.time.time
- libc.src.time.clock_getres
-
- # unistd.h entrypoints
- libc.src.unistd.getentropy
-
- # wctype.h entrypoints
- libc.src.wctype.iswalpha
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
- # fenv.h entrypoints
- libc.src.fenv.feclearexcept
- libc.src.fenv.fedisableexcept
- libc.src.fenv.feenableexcept
- libc.src.fenv.fegetenv
- libc.src.fenv.fegetexcept
- libc.src.fenv.fegetexceptflag
- libc.src.fenv.fegetround
- libc.src.fenv.feholdexcept
- libc.src.fenv.fesetenv
- libc.src.fenv.fesetexcept
- libc.src.fenv.fesetexceptflag
- libc.src.fenv.fesetround
- libc.src.fenv.feraiseexcept
- libc.src.fenv.fetestexcept
- libc.src.fenv.fetestexceptflag
- libc.src.fenv.feupdateenv
-
- # math.h entrypoints
- libc.src.math.acos
- libc.src.math.acosf
- libc.src.math.acoshf
- libc.src.math.asin
- libc.src.math.asinf
- libc.src.math.asinhf
- libc.src.math.atan2
- libc.src.math.atan2f
- libc.src.math.atan
- libc.src.math.atanf
- libc.src.math.atanhf
- libc.src.math.cbrt
- libc.src.math.cbrtf
- libc.src.math.copysign
- libc.src.math.copysignf
- libc.src.math.copysignl
- libc.src.math.ceil
- libc.src.math.ceilf
- libc.src.math.ceill
- libc.src.math.cos
- libc.src.math.cosf
- libc.src.math.coshf
- libc.src.math.daddl
- libc.src.math.ddivl
- libc.src.math.dfmal
- libc.src.math.dsubl
- libc.src.math.erff
- libc.src.math.exp
- libc.src.math.expf
- libc.src.math.exp10
- libc.src.math.exp10f
- libc.src.math.exp2
- libc.src.math.exp2f
- libc.src.math.expm1
- libc.src.math.expm1f
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.math.fabsl
- libc.src.math.fadd
- libc.src.math.faddl
- libc.src.math.fdim
- libc.src.math.fdimf
- libc.src.math.fdiml
- libc.src.math.fdiv
- libc.src.math.fdivl
- libc.src.math.ffma
- libc.src.math.ffmal
- libc.src.math.floor
- libc.src.math.floorf
- libc.src.math.floorl
- libc.src.math.fma
- libc.src.math.fmabf16
- libc.src.math.fmaf
- libc.src.math.fmin
- libc.src.math.fminf
- libc.src.math.fminl
- libc.src.math.fmax
- libc.src.math.fmaxf
- libc.src.math.fmaxl
- libc.src.math.fmaximum
- libc.src.math.fmaximumf
- libc.src.math.fmaximuml
- libc.src.math.fmaximum_num
- libc.src.math.fmaximum_numf
- libc.src.math.fmaximum_numl
- libc.src.math.fmaximum_mag
- libc.src.math.fmaximum_magf
- libc.src.math.fmaximum_magl
- libc.src.math.fmaximum_mag_num
- libc.src.math.fmaximum_mag_numf
- libc.src.math.fmaximum_mag_numl
- libc.src.math.fminimum
- libc.src.math.fminimumf
- libc.src.math.fminimuml
- libc.src.math.fminimum_num
- libc.src.math.fminimum_numf
- libc.src.math.fminimum_numl
- libc.src.math.fminimum_mag
- libc.src.math.fminimum_magf
- libc.src.math.fminimum_magl
- libc.src.math.fminimum_mag_num
- libc.src.math.fminimum_mag_numf
- libc.src.math.fminimum_mag_numl
- libc.src.math.fmul
- libc.src.math.fmod
- libc.src.math.fmodf
- libc.src.math.fmodl
- libc.src.math.frexp
- libc.src.math.frexpf
- libc.src.math.frexpl
- libc.src.math.fsub
- libc.src.math.fsubl
- libc.src.math.hypot
- libc.src.math.hypotf
- libc.src.math.ilogb
- libc.src.math.ilogbf
- libc.src.math.ilogbl
- libc.src.math.ldexp
- libc.src.math.ldexpf
- libc.src.math.ldexpl
- libc.src.math.llrint
- libc.src.math.llrintf
- libc.src.math.llrintl
- libc.src.math.llround
- libc.src.math.llroundf
- libc.src.math.llroundl
- libc.src.math.log10
- libc.src.math.log10f
- libc.src.math.log1p
- libc.src.math.log1pf
- libc.src.math.log2
- libc.src.math.log2f
- libc.src.math.log
- libc.src.math.logf
- libc.src.math.logb
- libc.src.math.logbf
- libc.src.math.logbl
- libc.src.math.lrint
- libc.src.math.lrintf
- libc.src.math.lrintl
- libc.src.math.lround
- libc.src.math.lroundf
- libc.src.math.lroundl
- libc.src.math.modf
- libc.src.math.modff
- libc.src.math.modfl
- libc.src.math.nan
- libc.src.math.nanf
- libc.src.math.nanl
- libc.src.math.nearbyint
- libc.src.math.nearbyintf
- libc.src.math.nearbyintl
- libc.src.math.nextafter
- libc.src.math.nextafterf
- libc.src.math.nextafterl
- libc.src.math.nexttoward
- libc.src.math.nexttowardf
- libc.src.math.nexttowardl
- libc.src.math.pow
- libc.src.math.powf
- libc.src.math.remainderf
- libc.src.math.remainder
- libc.src.math.remainderl
- libc.src.math.remquof
- libc.src.math.remquo
- libc.src.math.remquol
- libc.src.math.rint
- libc.src.math.rintf
- libc.src.math.rintl
- libc.src.math.round
- libc.src.math.roundf
- libc.src.math.roundl
- libc.src.math.scalbln
- libc.src.math.scalblnf
- libc.src.math.scalblnl
- libc.src.math.scalbn
- libc.src.math.scalbnf
- libc.src.math.scalbnl
- libc.src.math.sin
- libc.src.math.sincosf
- libc.src.math.sincosf
- libc.src.math.sinf
- libc.src.math.sinhf
- libc.src.math.sqrt
- libc.src.math.sqrtf
- libc.src.math.sqrtl
- libc.src.math.tan
- libc.src.math.tanf
- libc.src.math.tanhf
- libc.src.math.tanpif
- libc.src.math.trunc
- libc.src.math.truncf
- libc.src.math.truncl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
- # bfloat16 entrypoints
- libc.src.math.bf16add
- libc.src.math.bf16addf
- libc.src.math.bf16addl
- libc.src.math.bf16div
- libc.src.math.bf16divf
- libc.src.math.bf16divl
- libc.src.math.bf16fma
- libc.src.math.bf16fmaf
- libc.src.math.bf16fmal
- libc.src.math.bf16mul
- libc.src.math.bf16mulf
- libc.src.math.bf16mull
- libc.src.math.bf16sub
- libc.src.math.bf16subf
- libc.src.math.bf16subl
- libc.src.math.canonicalizebf16
- libc.src.math.ceilbf16
- libc.src.math.copysignbf16
- libc.src.math.fabsbf16
- libc.src.math.fdimbf16
- libc.src.math.floorbf16
- libc.src.math.fmaxbf16
- libc.src.math.fmaximumbf16
- libc.src.math.fmaximum_magbf16
- libc.src.math.fmaximum_mag_numbf16
- libc.src.math.fmaximum_numbf16
- libc.src.math.fminbf16
- libc.src.math.fminimumbf16
- libc.src.math.fminimum_magbf16
- libc.src.math.fminimum_mag_numbf16
- libc.src.math.fminimum_numbf16
- libc.src.math.fmodbf16
- libc.src.math.frexpbf16
- libc.src.math.fromfpbf16
- libc.src.math.fromfpxbf16
- libc.src.math.getpayloadbf16
- libc.src.math.ilogbbf16
- libc.src.math.iscanonicalbf16
- libc.src.math.issignalingbf16
- libc.src.math.ldexpbf16
- libc.src.math.llogbbf16
- libc.src.math.llrintbf16
- libc.src.math.llroundbf16
- libc.src.math.log_bf16
- libc.src.math.logbbf16
- libc.src.math.lrintbf16
- libc.src.math.lroundbf16
- libc.src.math.modfbf16
- libc.src.math.nanbf16
- libc.src.math.nearbyintbf16
- libc.src.math.nextafterbf16
- libc.src.math.nextdownbf16
- libc.src.math.nexttowardbf16
- libc.src.math.nextupbf16
- libc.src.math.remainderbf16
- libc.src.math.remquobf16
- libc.src.math.rintbf16
- libc.src.math.roundbf16
- libc.src.math.roundevenbf16
- libc.src.math.scalblnbf16
- libc.src.math.scalbnbf16
- libc.src.math.setpayloadbf16
- libc.src.math.setpayloadsigbf16
- libc.src.math.sqrtbf16
- libc.src.math.truncbf16
- libc.src.math.totalorderbf16
- libc.src.math.totalordermagbf16
- libc.src.math.ufromfpbf16
- libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
- ${TARGET_LIBC_ENTRYPOINTS}
- ${TARGET_LIBM_ENTRYPOINTS}
-)
-
+set(TARGET_LIBC_ENTRYPOINTS
+ # ctype.h entrypoints
+ libc.src.ctype.isalnum
+ libc.src.ctype.isalpha
+ libc.src.ctype.isascii
+ libc.src.ctype.isblank
+ libc.src.ctype.iscntrl
+ libc.src.ctype.isdigit
+ libc.src.ctype.isgraph
+ libc.src.ctype.islower
+ libc.src.ctype.isprint
+ libc.src.ctype.ispunct
+ libc.src.ctype.isspace
+ libc.src.ctype.isupper
+ libc.src.ctype.isxdigit
+ libc.src.ctype.toascii
+ libc.src.ctype.tolower
+ libc.src.ctype.toupper
+
+ # string.h entrypoints
+ libc.src.string.memccpy
+ libc.src.string.memchr
+ libc.src.string.memcmp
+ libc.src.string.memcpy
+ libc.src.string.memmem
+ libc.src.string.memmove
+ libc.src.string.mempcpy
+ libc.src.string.memrchr
+ libc.src.string.memset
+ libc.src.string.stpcpy
+ libc.src.string.stpncpy
+ libc.src.string.strcasestr
+ libc.src.string.strcat
+ libc.src.string.strchr
+ libc.src.string.strchrnul
+ libc.src.string.strcmp
+ libc.src.string.strcpy
+ libc.src.string.strcspn
+ libc.src.string.strlcat
+ libc.src.string.strlcpy
+ libc.src.string.strlen
+ libc.src.string.strncat
+ libc.src.string.strncmp
+ libc.src.string.strncpy
+ libc.src.string.strnlen
+ libc.src.string.strpbrk
+ libc.src.string.strrchr
+ libc.src.string.strspn
+ libc.src.string.strstr
+ libc.src.string.strtok
+ libc.src.string.strtok_r
+
+ # string.h entrypoints that depend on malloc
+ libc.src.string.strdup
+ libc.src.string.strndup
+
+ # strings.h entrypoints
+ libc.src.strings.bcmp
+ libc.src.strings.bcopy
+ libc.src.strings.bzero
+ libc.src.strings.strcasecmp
+ libc.src.strings.strncasecmp
+
+ # inttypes.h entrypoints
+ libc.src.inttypes.imaxabs
+ libc.src.inttypes.imaxdiv
+ libc.src.inttypes.strtoimax
+ libc.src.inttypes.strtoumax
+
+ # stdlib.h entrypoints
+ libc.src.stdlib.abs
+ libc.src.stdlib.atoi
+ libc.src.stdlib.atof
+ libc.src.stdlib.atol
+ libc.src.stdlib.atoll
+ libc.src.stdlib.bsearch
+ libc.src.stdlib.div
+ libc.src.stdlib.labs
+ libc.src.stdlib.ldiv
+ libc.src.stdlib.llabs
+ libc.src.stdlib.lldiv
+ libc.src.stdlib.memalignment
+ libc.src.stdlib.qsort
+ libc.src.stdlib.strtod
+ libc.src.stdlib.strtof
+ libc.src.stdlib.strtol
+ libc.src.stdlib.strtold
+ libc.src.stdlib.strtoll
+ libc.src.stdlib.strtoul
+ libc.src.stdlib.strtoull
+
+ # stdlib.h external entrypoints
+ libc.src.stdlib.malloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.realloc
+ libc.src.stdlib.aligned_alloc
+ libc.src.stdlib.free
+
+ # errno.h entrypoints
+ libc.src.errno.errno
+
+ # time.h entrypoints
+ libc.src.time.time
+ libc.src.time.clock_getres
+
+ # unistd.h entrypoints
+ libc.src.unistd.getentropy
+
+ # wctype.h entrypoints
+ libc.src.wctype.iswalpha
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+ # fenv.h entrypoints
+ libc.src.fenv.feclearexcept
+ libc.src.fenv.fedisableexcept
+ libc.src.fenv.feenableexcept
+ libc.src.fenv.fegetenv
+ libc.src.fenv.fegetexcept
+ libc.src.fenv.fegetexceptflag
+ libc.src.fenv.fegetround
+ libc.src.fenv.feholdexcept
+ libc.src.fenv.fesetenv
+ libc.src.fenv.fesetexcept
+ libc.src.fenv.fesetexceptflag
+ libc.src.fenv.fesetround
+ libc.src.fenv.feraiseexcept
+ libc.src.fenv.fetestexcept
+ libc.src.fenv.fetestexceptflag
+ libc.src.fenv.feupdateenv
+
+ # math.h entrypoints
+ libc.src.math.acos
+ libc.src.math.acosf
+ libc.src.math.acoshf
+ libc.src.math.asin
+ libc.src.math.asinf
+ libc.src.math.asinhf
+ libc.src.math.atan2
+ libc.src.math.atan2f
+ libc.src.math.atan
+ libc.src.math.atanf
+ libc.src.math.atanhf
+ libc.src.math.cbrt
+ libc.src.math.cbrtf
+ libc.src.math.copysign
+ libc.src.math.copysignf
+ libc.src.math.copysignl
+ libc.src.math.ceil
+ libc.src.math.ceilf
+ libc.src.math.ceill
+ libc.src.math.cos
+ libc.src.math.cosf
+ libc.src.math.coshf
+ libc.src.math.daddl
+ libc.src.math.ddivl
+ libc.src.math.dfmal
+ libc.src.math.dsubl
+ libc.src.math.erff
+ libc.src.math.exp
+ libc.src.math.expf
+ libc.src.math.exp10
+ libc.src.math.exp10f
+ libc.src.math.exp2
+ libc.src.math.exp2f
+ libc.src.math.expm1
+ libc.src.math.expm1f
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.math.fabsl
+ libc.src.math.fadd
+ libc.src.math.faddl
+ libc.src.math.fdim
+ libc.src.math.fdimf
+ libc.src.math.fdiml
+ libc.src.math.fdiv
+ libc.src.math.fdivl
+ libc.src.math.ffma
+ libc.src.math.ffmal
+ libc.src.math.floor
+ libc.src.math.floorf
+ libc.src.math.floorl
+ libc.src.math.fma
+ libc.src.math.fmabf16
+ libc.src.math.fmaf
+ libc.src.math.fmin
+ libc.src.math.fminf
+ libc.src.math.fminl
+ libc.src.math.fmax
+ libc.src.math.fmaxf
+ libc.src.math.fmaxl
+ libc.src.math.fmaximum
+ libc.src.math.fmaximumf
+ libc.src.math.fmaximuml
+ libc.src.math.fmaximum_num
+ libc.src.math.fmaximum_numf
+ libc.src.math.fmaximum_numl
+ libc.src.math.fmaximum_mag
+ libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magl
+ libc.src.math.fmaximum_mag_num
+ libc.src.math.fmaximum_mag_numf
+ libc.src.math.fmaximum_mag_numl
+ libc.src.math.fminimum
+ libc.src.math.fminimumf
+ libc.src.math.fminimuml
+ libc.src.math.fminimum_num
+ libc.src.math.fminimum_numf
+ libc.src.math.fminimum_numl
+ libc.src.math.fminimum_mag
+ libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magl
+ libc.src.math.fminimum_mag_num
+ libc.src.math.fminimum_mag_numf
+ libc.src.math.fminimum_mag_numl
+ libc.src.math.fmul
+ libc.src.math.fmod
+ libc.src.math.fmodf
+ libc.src.math.fmodl
+ libc.src.math.frexp
+ libc.src.math.frexpf
+ libc.src.math.frexpl
+ libc.src.math.fsub
+ libc.src.math.fsubl
+ libc.src.math.hypot
+ libc.src.math.hypotf
+ libc.src.math.ilogb
+ libc.src.math.ilogbf
+ libc.src.math.ilogbl
+ libc.src.math.ldexp
+ libc.src.math.ldexpf
+ libc.src.math.ldexpl
+ libc.src.math.llrint
+ libc.src.math.llrintf
+ libc.src.math.llrintl
+ libc.src.math.llround
+ libc.src.math.llroundf
+ libc.src.math.llroundl
+ libc.src.math.log10
+ libc.src.math.log10f
+ libc.src.math.log1p
+ libc.src.math.log1pf
+ libc.src.math.log2
+ libc.src.math.log2f
+ libc.src.math.log
+ libc.src.math.logf
+ libc.src.math.logb
+ libc.src.math.logbf
+ libc.src.math.logbl
+ libc.src.math.lrint
+ libc.src.math.lrintf
+ libc.src.math.lrintl
+ libc.src.math.lround
+ libc.src.math.lroundf
+ libc.src.math.lroundl
+ libc.src.math.modf
+ libc.src.math.modff
+ libc.src.math.modfl
+ libc.src.math.nan
+ libc.src.math.nanf
+ libc.src.math.nanl
+ libc.src.math.nearbyint
+ libc.src.math.nearbyintf
+ libc.src.math.nearbyintl
+ libc.src.math.nextafter
+ libc.src.math.nextafterf
+ libc.src.math.nextafterl
+ libc.src.math.nexttoward
+ libc.src.math.nexttowardf
+ libc.src.math.nexttowardl
+ libc.src.math.pow
+ libc.src.math.powf
+ libc.src.math.remainderf
+ libc.src.math.remainder
+ libc.src.math.remainderl
+ libc.src.math.remquof
+ libc.src.math.remquo
+ libc.src.math.remquol
+ libc.src.math.rint
+ libc.src.math.rintf
+ libc.src.math.rintl
+ libc.src.math.round
+ libc.src.math.roundf
+ libc.src.math.roundl
+ libc.src.math.scalbln
+ libc.src.math.scalblnf
+ libc.src.math.scalblnl
+ libc.src.math.scalbn
+ libc.src.math.scalbnf
+ libc.src.math.scalbnl
+ libc.src.math.sin
+ libc.src.math.sincosf
+ libc.src.math.sincosf
+ libc.src.math.sinf
+ libc.src.math.sinhf
+ libc.src.math.sqrt
+ libc.src.math.sqrtf
+ libc.src.math.sqrtl
+ libc.src.math.tan
+ libc.src.math.tanf
+ libc.src.math.tanhf
+ libc.src.math.tanpif
+ libc.src.math.trunc
+ libc.src.math.truncf
+ libc.src.math.truncl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+ # bfloat16 entrypoints
+ libc.src.math.bf16add
+ libc.src.math.bf16addf
+ libc.src.math.bf16addl
+ libc.src.math.bf16div
+ libc.src.math.bf16divf
+ libc.src.math.bf16divl
+ libc.src.math.bf16fma
+ libc.src.math.bf16fmaf
+ libc.src.math.bf16fmal
+ libc.src.math.bf16mul
+ libc.src.math.bf16mulf
+ libc.src.math.bf16mull
+ libc.src.math.bf16sub
+ libc.src.math.bf16subf
+ libc.src.math.bf16subl
+ libc.src.math.canonicalizebf16
+ libc.src.math.ceilbf16
+ libc.src.math.copysignbf16
+ libc.src.math.fabsbf16
+ libc.src.math.fdimbf16
+ libc.src.math.floorbf16
+ libc.src.math.fmaxbf16
+ libc.src.math.fmaximumbf16
+ libc.src.math.fmaximum_magbf16
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.math.fmaximum_numbf16
+ libc.src.math.fminbf16
+ libc.src.math.fminimumbf16
+ libc.src.math.fminimum_magbf16
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.math.fminimum_numbf16
+ libc.src.math.fmodbf16
+ libc.src.math.frexpbf16
+ libc.src.math.fromfpbf16
+ libc.src.math.fromfpxbf16
+ libc.src.math.getpayloadbf16
+ libc.src.math.ilogbbf16
+ libc.src.math.iscanonicalbf16
+ libc.src.math.issignalingbf16
+ libc.src.math.ldexpbf16
+ libc.src.math.llogbbf16
+ libc.src.math.llrintbf16
+ libc.src.math.llroundbf16
+ libc.src.math.log_bf16
+ libc.src.math.logbbf16
+ libc.src.math.lrintbf16
+ libc.src.math.lroundbf16
+ libc.src.math.modfbf16
+ libc.src.math.nanbf16
+ libc.src.math.nearbyintbf16
+ libc.src.math.nextafterbf16
+ libc.src.math.nextdownbf16
+ libc.src.math.nexttowardbf16
+ libc.src.math.nextupbf16
+ libc.src.math.remainderbf16
+ libc.src.math.remquobf16
+ libc.src.math.rintbf16
+ libc.src.math.roundbf16
+ libc.src.math.roundevenbf16
+ libc.src.math.scalblnbf16
+ libc.src.math.scalbnbf16
+ libc.src.math.setpayloadbf16
+ libc.src.math.setpayloadsigbf16
+ libc.src.math.sqrtbf16
+ libc.src.math.truncbf16
+ libc.src.math.totalorderbf16
+ libc.src.math.totalordermagbf16
+ libc.src.math.ufromfpbf16
+ libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+ ${TARGET_LIBC_ENTRYPOINTS}
+ ${TARGET_LIBM_ENTRYPOINTS}
+)
+
>From 4170c2e764af54b15480ae83bf247f023cafa221 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 9 Feb 2026 18:49:19 +0530
Subject: [PATCH 04/43] crlf-lf
---
libc/src/math/CMakeLists.txt | 1292 +++++++++++++++++-----------------
libc/src/math/ffmal.h | 40 +-
2 files changed, 666 insertions(+), 666 deletions(-)
diff --git a/libc/src/math/CMakeLists.txt b/libc/src/math/CMakeLists.txt
index d0db5cf8d0f74..79bd342cee1c6 100644
--- a/libc/src/math/CMakeLists.txt
+++ b/libc/src/math/CMakeLists.txt
@@ -1,646 +1,646 @@
-add_subdirectory(generic)
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_ARCHITECTURE})
- add_subdirectory(${LIBC_TARGET_ARCHITECTURE})
-endif()
-
-function(add_math_entrypoint_object name)
- # We prefer machine specific implementation if available. Hence we check
- # that first and return early if we are able to add an alias target for the
- # machine specific implementation.
- get_fq_target_name("${LIBC_TARGET_ARCHITECTURE}.${name}" fq_machine_specific_target_name)
- if(TARGET ${fq_machine_specific_target_name})
- add_entrypoint_object(
- ${name}
- ALIAS
- DEPENDS
- .${LIBC_TARGET_ARCHITECTURE}.${name}
- )
- return()
- endif()
-
- get_fq_target_name("generic.${name}" fq_generic_target_name)
- if(TARGET ${fq_generic_target_name})
- add_entrypoint_object(
- ${name}
- ALIAS
- DEPENDS
- .generic.${name}
- )
- return()
- endif()
-
- # Add a dummy entrypoint object for missing implementations. They will be skipped
- # anyway as there will be no entry for them in the target entrypoints list.
- add_entrypoint_object(
- ${name}
- SRCS
- dummy_srcs
- HDRS
- dummy_hdrs
- )
-endfunction()
-
-add_math_entrypoint_object(acos)
-add_math_entrypoint_object(acosf)
-add_math_entrypoint_object(acosf16)
-
-add_math_entrypoint_object(acosh)
-add_math_entrypoint_object(acoshf)
-add_math_entrypoint_object(acoshf16)
-
-add_math_entrypoint_object(acospif16)
-
-add_math_entrypoint_object(asin)
-add_math_entrypoint_object(asinf)
-add_math_entrypoint_object(asinf16)
-
-add_math_entrypoint_object(asinh)
-add_math_entrypoint_object(asinhf)
-add_math_entrypoint_object(asinhf16)
-
-add_math_entrypoint_object(asinpif16)
-
-add_math_entrypoint_object(atan)
-add_math_entrypoint_object(atanf)
-add_math_entrypoint_object(atanf16)
-
-add_math_entrypoint_object(atan2)
-add_math_entrypoint_object(atan2f)
-add_math_entrypoint_object(atan2l)
-add_math_entrypoint_object(atan2f128)
-
-add_math_entrypoint_object(atanh)
-add_math_entrypoint_object(atanhf)
-add_math_entrypoint_object(atanhf16)
-
-add_math_entrypoint_object(atanpif16)
-
-add_math_entrypoint_object(canonicalize)
-add_math_entrypoint_object(canonicalizef)
-add_math_entrypoint_object(canonicalizel)
-add_math_entrypoint_object(canonicalizef16)
-add_math_entrypoint_object(canonicalizef128)
-add_math_entrypoint_object(canonicalizebf16)
-
-add_math_entrypoint_object(iscanonical)
-add_math_entrypoint_object(iscanonicalf)
-add_math_entrypoint_object(iscanonicall)
-add_math_entrypoint_object(iscanonicalf16)
-add_math_entrypoint_object(iscanonicalf128)
-add_math_entrypoint_object(iscanonicalbf16)
-
-add_math_entrypoint_object(cbrt)
-add_math_entrypoint_object(cbrtf)
-
-add_math_entrypoint_object(ceil)
-add_math_entrypoint_object(ceilf)
-add_math_entrypoint_object(ceill)
-add_math_entrypoint_object(ceilf16)
-add_math_entrypoint_object(ceilf128)
-add_math_entrypoint_object(ceilbf16)
-
-add_math_entrypoint_object(copysign)
-add_math_entrypoint_object(copysignf)
-add_math_entrypoint_object(copysignl)
-add_math_entrypoint_object(copysignf16)
-add_math_entrypoint_object(copysignf128)
-add_math_entrypoint_object(copysignbf16)
-
-add_math_entrypoint_object(cos)
-add_math_entrypoint_object(cosf)
-add_math_entrypoint_object(cosf16)
-
-add_math_entrypoint_object(cosh)
-add_math_entrypoint_object(coshf)
-add_math_entrypoint_object(coshf16)
-
-add_math_entrypoint_object(cospif)
-add_math_entrypoint_object(cospif16)
-
-add_math_entrypoint_object(daddl)
-add_math_entrypoint_object(daddf128)
-add_math_entrypoint_object(ddivl)
-add_math_entrypoint_object(ddivf128)
-add_math_entrypoint_object(dmull)
-add_math_entrypoint_object(dmulf128)
-
-add_math_entrypoint_object(dfmal)
-add_math_entrypoint_object(dfmaf128)
-
-add_math_entrypoint_object(dsqrtl)
-add_math_entrypoint_object(dsqrtf128)
-
-add_math_entrypoint_object(dsubl)
-add_math_entrypoint_object(dsubf128)
-
-add_math_entrypoint_object(erf)
-add_math_entrypoint_object(erff)
-
-add_math_entrypoint_object(exp)
-add_math_entrypoint_object(expf)
-add_math_entrypoint_object(expf16)
-
-add_math_entrypoint_object(exp2)
-add_math_entrypoint_object(exp2f)
-add_math_entrypoint_object(exp2f16)
-
-add_math_entrypoint_object(exp2m1f)
-add_math_entrypoint_object(exp2m1f16)
-
-add_math_entrypoint_object(exp10)
-add_math_entrypoint_object(exp10f)
-add_math_entrypoint_object(exp10f16)
-
-add_math_entrypoint_object(exp10m1f)
-add_math_entrypoint_object(exp10m1f16)
-
-add_math_entrypoint_object(expm1)
-add_math_entrypoint_object(expm1f)
-add_math_entrypoint_object(expm1f16)
-
-add_math_entrypoint_object(f16add)
-add_math_entrypoint_object(f16addf)
-add_math_entrypoint_object(f16addl)
-add_math_entrypoint_object(f16addf128)
-
-add_math_entrypoint_object(f16div)
-add_math_entrypoint_object(f16divf)
-add_math_entrypoint_object(f16divl)
-add_math_entrypoint_object(f16divf128)
-
-add_math_entrypoint_object(f16fma)
-add_math_entrypoint_object(f16fmaf)
-add_math_entrypoint_object(f16fmal)
-add_math_entrypoint_object(f16fmaf128)
-
-add_math_entrypoint_object(f16mul)
-add_math_entrypoint_object(f16mulf)
-add_math_entrypoint_object(f16mull)
-add_math_entrypoint_object(f16mulf128)
-
-add_math_entrypoint_object(f16sqrt)
-add_math_entrypoint_object(f16sqrtf)
-add_math_entrypoint_object(f16sqrtl)
-add_math_entrypoint_object(f16sqrtf128)
-
-add_math_entrypoint_object(fsqrt)
-add_math_entrypoint_object(fsqrtl)
-add_math_entrypoint_object(fsqrtf128)
-
-add_math_entrypoint_object(f16sub)
-add_math_entrypoint_object(f16subf)
-add_math_entrypoint_object(f16subl)
-add_math_entrypoint_object(f16subf128)
-
-add_math_entrypoint_object(fabs)
-add_math_entrypoint_object(fabsf)
-add_math_entrypoint_object(fabsl)
-add_math_entrypoint_object(fabsf16)
-add_math_entrypoint_object(fabsf128)
-add_math_entrypoint_object(fabsbf16)
-
-add_math_entrypoint_object(fadd)
-add_math_entrypoint_object(faddl)
-add_math_entrypoint_object(faddf128)
-
-add_math_entrypoint_object(fdim)
-add_math_entrypoint_object(fdimf)
-add_math_entrypoint_object(fdiml)
-add_math_entrypoint_object(fdimf16)
-add_math_entrypoint_object(fdimf128)
-add_math_entrypoint_object(fdimbf16)
-
-add_math_entrypoint_object(fdiv)
-add_math_entrypoint_object(fdivl)
-add_math_entrypoint_object(fdivf128)
-
-add_math_entrypoint_object(ffma)
-add_math_entrypoint_object(ffmal)
-add_math_entrypoint_object(ffmaf128)
-
-add_math_entrypoint_object(floor)
-add_math_entrypoint_object(floorf)
-add_math_entrypoint_object(floorl)
-add_math_entrypoint_object(floorf16)
-add_math_entrypoint_object(floorf128)
-add_math_entrypoint_object(floorbf16)
-
-add_math_entrypoint_object(fma)
-add_math_entrypoint_object(fmaf)
-add_math_entrypoint_object(fmaf16)
-add_math_entrypoint_object(fmabf16)
-
-add_math_entrypoint_object(fmax)
-add_math_entrypoint_object(fmaxf)
-add_math_entrypoint_object(fmaxl)
-add_math_entrypoint_object(fmaxf128)
-add_math_entrypoint_object(fmaxf16)
-add_math_entrypoint_object(fmaxbf16)
-
-add_math_entrypoint_object(fmin)
-add_math_entrypoint_object(fminf)
-add_math_entrypoint_object(fminl)
-add_math_entrypoint_object(fminf128)
-add_math_entrypoint_object(fminf16)
-add_math_entrypoint_object(fminbf16)
-
-add_math_entrypoint_object(fmaximum)
-add_math_entrypoint_object(fmaximumf)
-add_math_entrypoint_object(fmaximuml)
-add_math_entrypoint_object(fmaximumf16)
-add_math_entrypoint_object(fmaximumf128)
-add_math_entrypoint_object(fmaximumbf16)
-
-add_math_entrypoint_object(fmaximum_num)
-add_math_entrypoint_object(fmaximum_numf)
-add_math_entrypoint_object(fmaximum_numl)
-add_math_entrypoint_object(fmaximum_numf16)
-add_math_entrypoint_object(fmaximum_numf128)
-add_math_entrypoint_object(fmaximum_numbf16)
-
-add_math_entrypoint_object(fmaximum_mag)
-add_math_entrypoint_object(fmaximum_magf)
-add_math_entrypoint_object(fmaximum_magl)
-add_math_entrypoint_object(fmaximum_magf16)
-add_math_entrypoint_object(fmaximum_magf128)
-add_math_entrypoint_object(fmaximum_magbf16)
-
-add_math_entrypoint_object(fmaximum_mag_num)
-add_math_entrypoint_object(fmaximum_mag_numf)
-add_math_entrypoint_object(fmaximum_mag_numl)
-add_math_entrypoint_object(fmaximum_mag_numf16)
-add_math_entrypoint_object(fmaximum_mag_numf128)
-add_math_entrypoint_object(fmaximum_mag_numbf16)
-
-add_math_entrypoint_object(fminimum)
-add_math_entrypoint_object(fminimumf)
-add_math_entrypoint_object(fminimuml)
-add_math_entrypoint_object(fminimumf16)
-add_math_entrypoint_object(fminimumf128)
-add_math_entrypoint_object(fminimumbf16)
-
-add_math_entrypoint_object(fminimum_num)
-add_math_entrypoint_object(fminimum_numf)
-add_math_entrypoint_object(fminimum_numl)
-add_math_entrypoint_object(fminimum_numf16)
-add_math_entrypoint_object(fminimum_numf128)
-add_math_entrypoint_object(fminimum_numbf16)
-
-add_math_entrypoint_object(fminimum_mag)
-add_math_entrypoint_object(fminimum_magf)
-add_math_entrypoint_object(fminimum_magl)
-add_math_entrypoint_object(fminimum_magf16)
-add_math_entrypoint_object(fminimum_magf128)
-add_math_entrypoint_object(fminimum_magbf16)
-
-add_math_entrypoint_object(fminimum_mag_num)
-add_math_entrypoint_object(fminimum_mag_numf)
-add_math_entrypoint_object(fminimum_mag_numl)
-add_math_entrypoint_object(fminimum_mag_numf16)
-add_math_entrypoint_object(fminimum_mag_numf128)
-add_math_entrypoint_object(fminimum_mag_numbf16)
-
-add_math_entrypoint_object(fmul)
-add_math_entrypoint_object(fmull)
-add_math_entrypoint_object(fmulf128)
-
-add_math_entrypoint_object(fmod)
-add_math_entrypoint_object(fmodf)
-add_math_entrypoint_object(fmodl)
-add_math_entrypoint_object(fmodf16)
-add_math_entrypoint_object(fmodf128)
-add_math_entrypoint_object(fmodbf16)
-
-add_math_entrypoint_object(frexp)
-add_math_entrypoint_object(frexpf)
-add_math_entrypoint_object(frexpl)
-add_math_entrypoint_object(frexpf16)
-add_math_entrypoint_object(frexpf128)
-add_math_entrypoint_object(frexpbf16)
-
-add_math_entrypoint_object(fromfp)
-add_math_entrypoint_object(fromfpf)
-add_math_entrypoint_object(fromfpl)
-add_math_entrypoint_object(fromfpf16)
-add_math_entrypoint_object(fromfpf128)
-add_math_entrypoint_object(fromfpbf16)
-
-add_math_entrypoint_object(fromfpx)
-add_math_entrypoint_object(fromfpxf)
-add_math_entrypoint_object(fromfpxl)
-add_math_entrypoint_object(fromfpxf16)
-add_math_entrypoint_object(fromfpxf128)
-add_math_entrypoint_object(fromfpxbf16)
-
-add_math_entrypoint_object(fsub)
-add_math_entrypoint_object(fsubl)
-add_math_entrypoint_object(fsubf128)
-
-add_math_entrypoint_object(getpayload)
-add_math_entrypoint_object(getpayloadf)
-add_math_entrypoint_object(getpayloadl)
-add_math_entrypoint_object(getpayloadf16)
-add_math_entrypoint_object(getpayloadf128)
-add_math_entrypoint_object(getpayloadbf16)
-
-add_math_entrypoint_object(hypot)
-add_math_entrypoint_object(hypotf)
-add_math_entrypoint_object(hypotf16)
-
-add_math_entrypoint_object(ilogb)
-add_math_entrypoint_object(ilogbf)
-add_math_entrypoint_object(ilogbl)
-add_math_entrypoint_object(ilogbf16)
-add_math_entrypoint_object(ilogbf128)
-add_math_entrypoint_object(ilogbbf16)
-
-add_math_entrypoint_object(isnan)
-add_math_entrypoint_object(isnanf)
-add_math_entrypoint_object(isnanl)
-
-add_math_entrypoint_object(issignaling)
-add_math_entrypoint_object(issignalingf)
-add_math_entrypoint_object(issignalingl)
-add_math_entrypoint_object(issignalingf16)
-add_math_entrypoint_object(issignalingf128)
-add_math_entrypoint_object(issignalingbf16)
-
-add_math_entrypoint_object(llogb)
-add_math_entrypoint_object(llogbf)
-add_math_entrypoint_object(llogbl)
-add_math_entrypoint_object(llogbf16)
-add_math_entrypoint_object(llogbf128)
-add_math_entrypoint_object(llogbbf16)
-
-add_math_entrypoint_object(ldexp)
-add_math_entrypoint_object(ldexpf)
-add_math_entrypoint_object(ldexpl)
-add_math_entrypoint_object(ldexpf16)
-add_math_entrypoint_object(ldexpf128)
-add_math_entrypoint_object(ldexpbf16)
-
-add_math_entrypoint_object(log10)
-add_math_entrypoint_object(log10f)
-add_math_entrypoint_object(log10f16)
-
-add_math_entrypoint_object(log1p)
-add_math_entrypoint_object(log1pf)
-
-add_math_entrypoint_object(log2)
-add_math_entrypoint_object(log2f)
-add_math_entrypoint_object(log2f16)
-
-add_math_entrypoint_object(log)
-add_math_entrypoint_object(logf)
-add_math_entrypoint_object(logf16)
-add_math_entrypoint_object(log_bf16)
-
-add_math_entrypoint_object(logb)
-add_math_entrypoint_object(logbf)
-add_math_entrypoint_object(logbl)
-add_math_entrypoint_object(logbf16)
-add_math_entrypoint_object(logbf128)
-add_math_entrypoint_object(logbbf16)
-
-add_math_entrypoint_object(llrint)
-add_math_entrypoint_object(llrintf)
-add_math_entrypoint_object(llrintl)
-add_math_entrypoint_object(llrintf16)
-add_math_entrypoint_object(llrintf128)
-add_math_entrypoint_object(llrintbf16)
-
-add_math_entrypoint_object(llround)
-add_math_entrypoint_object(llroundf)
-add_math_entrypoint_object(llroundl)
-add_math_entrypoint_object(llroundf16)
-add_math_entrypoint_object(llroundf128)
-add_math_entrypoint_object(llroundbf16)
-
-add_math_entrypoint_object(lrint)
-add_math_entrypoint_object(lrintf)
-add_math_entrypoint_object(lrintl)
-add_math_entrypoint_object(lrintf16)
-add_math_entrypoint_object(lrintf128)
-add_math_entrypoint_object(lrintbf16)
-
-add_math_entrypoint_object(lround)
-add_math_entrypoint_object(lroundf)
-add_math_entrypoint_object(lroundl)
-add_math_entrypoint_object(lroundf16)
-add_math_entrypoint_object(lroundf128)
-add_math_entrypoint_object(lroundbf16)
-
-add_math_entrypoint_object(modf)
-add_math_entrypoint_object(modff)
-add_math_entrypoint_object(modfl)
-add_math_entrypoint_object(modff16)
-add_math_entrypoint_object(modff128)
-add_math_entrypoint_object(modfbf16)
-
-add_math_entrypoint_object(nan)
-add_math_entrypoint_object(nanf)
-add_math_entrypoint_object(nanl)
-add_math_entrypoint_object(nanf16)
-add_math_entrypoint_object(nanf128)
-add_math_entrypoint_object(nanbf16)
-
-add_math_entrypoint_object(nearbyint)
-add_math_entrypoint_object(nearbyintf)
-add_math_entrypoint_object(nearbyintl)
-add_math_entrypoint_object(nearbyintf16)
-add_math_entrypoint_object(nearbyintf128)
-add_math_entrypoint_object(nearbyintbf16)
-
-add_math_entrypoint_object(nextafter)
-add_math_entrypoint_object(nextafterf)
-add_math_entrypoint_object(nextafterl)
-add_math_entrypoint_object(nextafterf16)
-add_math_entrypoint_object(nextafterf128)
-add_math_entrypoint_object(nextafterbf16)
-
-add_math_entrypoint_object(nexttoward)
-add_math_entrypoint_object(nexttowardf)
-add_math_entrypoint_object(nexttowardl)
-add_math_entrypoint_object(nexttowardf16)
-add_math_entrypoint_object(nexttowardbf16)
-
-add_math_entrypoint_object(nextdown)
-add_math_entrypoint_object(nextdownf)
-add_math_entrypoint_object(nextdownl)
-add_math_entrypoint_object(nextdownf16)
-add_math_entrypoint_object(nextdownf128)
-add_math_entrypoint_object(nextdownbf16)
-
-add_math_entrypoint_object(nextup)
-add_math_entrypoint_object(nextupf)
-add_math_entrypoint_object(nextupl)
-add_math_entrypoint_object(nextupf16)
-add_math_entrypoint_object(nextupf128)
-add_math_entrypoint_object(nextupbf16)
-
-add_math_entrypoint_object(pow)
-add_math_entrypoint_object(powf)
-add_math_entrypoint_object(powi)
-add_math_entrypoint_object(powif)
-
-add_math_entrypoint_object(remainder)
-add_math_entrypoint_object(remainderf)
-add_math_entrypoint_object(remainderl)
-add_math_entrypoint_object(remainderf16)
-add_math_entrypoint_object(remainderf128)
-add_math_entrypoint_object(remainderbf16)
-
-add_math_entrypoint_object(remquo)
-add_math_entrypoint_object(remquof)
-add_math_entrypoint_object(remquol)
-add_math_entrypoint_object(remquof16)
-add_math_entrypoint_object(remquof128)
-add_math_entrypoint_object(remquobf16)
-
-add_math_entrypoint_object(rint)
-add_math_entrypoint_object(rintf)
-add_math_entrypoint_object(rintl)
-add_math_entrypoint_object(rintf16)
-add_math_entrypoint_object(rintf128)
-add_math_entrypoint_object(rintbf16)
-
-add_math_entrypoint_object(round)
-add_math_entrypoint_object(roundf)
-add_math_entrypoint_object(roundl)
-add_math_entrypoint_object(roundf16)
-add_math_entrypoint_object(roundf128)
-add_math_entrypoint_object(roundbf16)
-
-add_math_entrypoint_object(roundeven)
-add_math_entrypoint_object(roundevenf)
-add_math_entrypoint_object(roundevenl)
-add_math_entrypoint_object(roundevenf16)
-add_math_entrypoint_object(roundevenf128)
-add_math_entrypoint_object(roundevenbf16)
-
-add_math_entrypoint_object(rsqrtf)
-add_math_entrypoint_object(rsqrtf16)
-
-add_math_entrypoint_object(scalbln)
-add_math_entrypoint_object(scalblnf)
-add_math_entrypoint_object(scalblnl)
-add_math_entrypoint_object(scalblnf16)
-add_math_entrypoint_object(scalblnf128)
-add_math_entrypoint_object(scalblnbf16)
-
-add_math_entrypoint_object(scalbn)
-add_math_entrypoint_object(scalbnf)
-add_math_entrypoint_object(scalbnl)
-add_math_entrypoint_object(scalbnf16)
-add_math_entrypoint_object(scalbnf128)
-add_math_entrypoint_object(scalbnbf16)
-
-add_math_entrypoint_object(setpayload)
-add_math_entrypoint_object(setpayloadf)
-add_math_entrypoint_object(setpayloadl)
-add_math_entrypoint_object(setpayloadf16)
-add_math_entrypoint_object(setpayloadf128)
-add_math_entrypoint_object(setpayloadbf16)
-
-add_math_entrypoint_object(setpayloadsig)
-add_math_entrypoint_object(setpayloadsigf)
-add_math_entrypoint_object(setpayloadsigl)
-add_math_entrypoint_object(setpayloadsigf16)
-add_math_entrypoint_object(setpayloadsigf128)
-add_math_entrypoint_object(setpayloadsigbf16)
-
-add_math_entrypoint_object(sincos)
-add_math_entrypoint_object(sincosf)
-
-add_math_entrypoint_object(sin)
-add_math_entrypoint_object(sinf)
-add_math_entrypoint_object(sinf16)
-add_math_entrypoint_object(sinpif)
-add_math_entrypoint_object(sinpif16)
-
-add_math_entrypoint_object(sinh)
-add_math_entrypoint_object(sinhf)
-add_math_entrypoint_object(sinhf16)
-
-add_math_entrypoint_object(sqrt)
-add_math_entrypoint_object(sqrtf)
-add_math_entrypoint_object(sqrtl)
-add_math_entrypoint_object(sqrtf16)
-add_math_entrypoint_object(sqrtf128)
-add_math_entrypoint_object(sqrtbf16)
-
-add_math_entrypoint_object(tan)
-add_math_entrypoint_object(tanf)
-add_math_entrypoint_object(tanf16)
-
-add_math_entrypoint_object(tanh)
-add_math_entrypoint_object(tanhf)
-add_math_entrypoint_object(tanhf16)
-
-add_math_entrypoint_object(tanpif)
-add_math_entrypoint_object(tanpif16)
-
-add_math_entrypoint_object(tgamma)
-add_math_entrypoint_object(tgammaf)
-add_math_entrypoint_object(lgamma)
-add_math_entrypoint_object(lgamma_r)
-
-add_math_entrypoint_object(totalorder)
-add_math_entrypoint_object(totalorderf)
-add_math_entrypoint_object(totalorderl)
-add_math_entrypoint_object(totalorderf16)
-add_math_entrypoint_object(totalorderf128)
-add_math_entrypoint_object(totalorderbf16)
-
-add_math_entrypoint_object(totalordermag)
-add_math_entrypoint_object(totalordermagf)
-add_math_entrypoint_object(totalordermagl)
-add_math_entrypoint_object(totalordermagf16)
-add_math_entrypoint_object(totalordermagf128)
-add_math_entrypoint_object(totalordermagbf16)
-
-add_math_entrypoint_object(trunc)
-add_math_entrypoint_object(truncf)
-add_math_entrypoint_object(truncl)
-add_math_entrypoint_object(truncf16)
-add_math_entrypoint_object(truncf128)
-add_math_entrypoint_object(truncbf16)
-
-add_math_entrypoint_object(ufromfp)
-add_math_entrypoint_object(ufromfpf)
-add_math_entrypoint_object(ufromfpl)
-add_math_entrypoint_object(ufromfpf16)
-add_math_entrypoint_object(ufromfpf128)
-add_math_entrypoint_object(ufromfpbf16)
-
-add_math_entrypoint_object(ufromfpx)
-add_math_entrypoint_object(ufromfpxf)
-add_math_entrypoint_object(ufromfpxl)
-add_math_entrypoint_object(ufromfpxf16)
-add_math_entrypoint_object(ufromfpxf128)
-add_math_entrypoint_object(ufromfpxbf16)
-
-add_math_entrypoint_object(bf16add)
-add_math_entrypoint_object(bf16addf)
-add_math_entrypoint_object(bf16addl)
-add_math_entrypoint_object(bf16addf128)
-
-add_math_entrypoint_object(bf16div)
-add_math_entrypoint_object(bf16divf)
-add_math_entrypoint_object(bf16divl)
-add_math_entrypoint_object(bf16divf128)
-
-add_math_entrypoint_object(bf16fma)
-add_math_entrypoint_object(bf16fmaf)
-add_math_entrypoint_object(bf16fmal)
-add_math_entrypoint_object(bf16fmaf128)
-
-add_math_entrypoint_object(bf16mul)
-add_math_entrypoint_object(bf16mulf)
-add_math_entrypoint_object(bf16mull)
-add_math_entrypoint_object(bf16mulf128)
-
-add_math_entrypoint_object(bf16sub)
-add_math_entrypoint_object(bf16subf)
-add_math_entrypoint_object(bf16subl)
-add_math_entrypoint_object(bf16subf128)
+add_subdirectory(generic)
+if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_ARCHITECTURE})
+ add_subdirectory(${LIBC_TARGET_ARCHITECTURE})
+endif()
+
+function(add_math_entrypoint_object name)
+ # We prefer machine specific implementation if available. Hence we check
+ # that first and return early if we are able to add an alias target for the
+ # machine specific implementation.
+ get_fq_target_name("${LIBC_TARGET_ARCHITECTURE}.${name}" fq_machine_specific_target_name)
+ if(TARGET ${fq_machine_specific_target_name})
+ add_entrypoint_object(
+ ${name}
+ ALIAS
+ DEPENDS
+ .${LIBC_TARGET_ARCHITECTURE}.${name}
+ )
+ return()
+ endif()
+
+ get_fq_target_name("generic.${name}" fq_generic_target_name)
+ if(TARGET ${fq_generic_target_name})
+ add_entrypoint_object(
+ ${name}
+ ALIAS
+ DEPENDS
+ .generic.${name}
+ )
+ return()
+ endif()
+
+ # Add a dummy entrypoint object for missing implementations. They will be skipped
+ # anyway as there will be no entry for them in the target entrypoints list.
+ add_entrypoint_object(
+ ${name}
+ SRCS
+ dummy_srcs
+ HDRS
+ dummy_hdrs
+ )
+endfunction()
+
+add_math_entrypoint_object(acos)
+add_math_entrypoint_object(acosf)
+add_math_entrypoint_object(acosf16)
+
+add_math_entrypoint_object(acosh)
+add_math_entrypoint_object(acoshf)
+add_math_entrypoint_object(acoshf16)
+
+add_math_entrypoint_object(acospif16)
+
+add_math_entrypoint_object(asin)
+add_math_entrypoint_object(asinf)
+add_math_entrypoint_object(asinf16)
+
+add_math_entrypoint_object(asinh)
+add_math_entrypoint_object(asinhf)
+add_math_entrypoint_object(asinhf16)
+
+add_math_entrypoint_object(asinpif16)
+
+add_math_entrypoint_object(atan)
+add_math_entrypoint_object(atanf)
+add_math_entrypoint_object(atanf16)
+
+add_math_entrypoint_object(atan2)
+add_math_entrypoint_object(atan2f)
+add_math_entrypoint_object(atan2l)
+add_math_entrypoint_object(atan2f128)
+
+add_math_entrypoint_object(atanh)
+add_math_entrypoint_object(atanhf)
+add_math_entrypoint_object(atanhf16)
+
+add_math_entrypoint_object(atanpif16)
+
+add_math_entrypoint_object(canonicalize)
+add_math_entrypoint_object(canonicalizef)
+add_math_entrypoint_object(canonicalizel)
+add_math_entrypoint_object(canonicalizef16)
+add_math_entrypoint_object(canonicalizef128)
+add_math_entrypoint_object(canonicalizebf16)
+
+add_math_entrypoint_object(iscanonical)
+add_math_entrypoint_object(iscanonicalf)
+add_math_entrypoint_object(iscanonicall)
+add_math_entrypoint_object(iscanonicalf16)
+add_math_entrypoint_object(iscanonicalf128)
+add_math_entrypoint_object(iscanonicalbf16)
+
+add_math_entrypoint_object(cbrt)
+add_math_entrypoint_object(cbrtf)
+
+add_math_entrypoint_object(ceil)
+add_math_entrypoint_object(ceilf)
+add_math_entrypoint_object(ceill)
+add_math_entrypoint_object(ceilf16)
+add_math_entrypoint_object(ceilf128)
+add_math_entrypoint_object(ceilbf16)
+
+add_math_entrypoint_object(copysign)
+add_math_entrypoint_object(copysignf)
+add_math_entrypoint_object(copysignl)
+add_math_entrypoint_object(copysignf16)
+add_math_entrypoint_object(copysignf128)
+add_math_entrypoint_object(copysignbf16)
+
+add_math_entrypoint_object(cos)
+add_math_entrypoint_object(cosf)
+add_math_entrypoint_object(cosf16)
+
+add_math_entrypoint_object(cosh)
+add_math_entrypoint_object(coshf)
+add_math_entrypoint_object(coshf16)
+
+add_math_entrypoint_object(cospif)
+add_math_entrypoint_object(cospif16)
+
+add_math_entrypoint_object(daddl)
+add_math_entrypoint_object(daddf128)
+add_math_entrypoint_object(ddivl)
+add_math_entrypoint_object(ddivf128)
+add_math_entrypoint_object(dmull)
+add_math_entrypoint_object(dmulf128)
+
+add_math_entrypoint_object(dfmal)
+add_math_entrypoint_object(dfmaf128)
+
+add_math_entrypoint_object(dsqrtl)
+add_math_entrypoint_object(dsqrtf128)
+
+add_math_entrypoint_object(dsubl)
+add_math_entrypoint_object(dsubf128)
+
+add_math_entrypoint_object(erf)
+add_math_entrypoint_object(erff)
+
+add_math_entrypoint_object(exp)
+add_math_entrypoint_object(expf)
+add_math_entrypoint_object(expf16)
+
+add_math_entrypoint_object(exp2)
+add_math_entrypoint_object(exp2f)
+add_math_entrypoint_object(exp2f16)
+
+add_math_entrypoint_object(exp2m1f)
+add_math_entrypoint_object(exp2m1f16)
+
+add_math_entrypoint_object(exp10)
+add_math_entrypoint_object(exp10f)
+add_math_entrypoint_object(exp10f16)
+
+add_math_entrypoint_object(exp10m1f)
+add_math_entrypoint_object(exp10m1f16)
+
+add_math_entrypoint_object(expm1)
+add_math_entrypoint_object(expm1f)
+add_math_entrypoint_object(expm1f16)
+
+add_math_entrypoint_object(f16add)
+add_math_entrypoint_object(f16addf)
+add_math_entrypoint_object(f16addl)
+add_math_entrypoint_object(f16addf128)
+
+add_math_entrypoint_object(f16div)
+add_math_entrypoint_object(f16divf)
+add_math_entrypoint_object(f16divl)
+add_math_entrypoint_object(f16divf128)
+
+add_math_entrypoint_object(f16fma)
+add_math_entrypoint_object(f16fmaf)
+add_math_entrypoint_object(f16fmal)
+add_math_entrypoint_object(f16fmaf128)
+
+add_math_entrypoint_object(f16mul)
+add_math_entrypoint_object(f16mulf)
+add_math_entrypoint_object(f16mull)
+add_math_entrypoint_object(f16mulf128)
+
+add_math_entrypoint_object(f16sqrt)
+add_math_entrypoint_object(f16sqrtf)
+add_math_entrypoint_object(f16sqrtl)
+add_math_entrypoint_object(f16sqrtf128)
+
+add_math_entrypoint_object(fsqrt)
+add_math_entrypoint_object(fsqrtl)
+add_math_entrypoint_object(fsqrtf128)
+
+add_math_entrypoint_object(f16sub)
+add_math_entrypoint_object(f16subf)
+add_math_entrypoint_object(f16subl)
+add_math_entrypoint_object(f16subf128)
+
+add_math_entrypoint_object(fabs)
+add_math_entrypoint_object(fabsf)
+add_math_entrypoint_object(fabsl)
+add_math_entrypoint_object(fabsf16)
+add_math_entrypoint_object(fabsf128)
+add_math_entrypoint_object(fabsbf16)
+
+add_math_entrypoint_object(fadd)
+add_math_entrypoint_object(faddl)
+add_math_entrypoint_object(faddf128)
+
+add_math_entrypoint_object(fdim)
+add_math_entrypoint_object(fdimf)
+add_math_entrypoint_object(fdiml)
+add_math_entrypoint_object(fdimf16)
+add_math_entrypoint_object(fdimf128)
+add_math_entrypoint_object(fdimbf16)
+
+add_math_entrypoint_object(fdiv)
+add_math_entrypoint_object(fdivl)
+add_math_entrypoint_object(fdivf128)
+
+add_math_entrypoint_object(ffma)
+add_math_entrypoint_object(ffmal)
+add_math_entrypoint_object(ffmaf128)
+
+add_math_entrypoint_object(floor)
+add_math_entrypoint_object(floorf)
+add_math_entrypoint_object(floorl)
+add_math_entrypoint_object(floorf16)
+add_math_entrypoint_object(floorf128)
+add_math_entrypoint_object(floorbf16)
+
+add_math_entrypoint_object(fma)
+add_math_entrypoint_object(fmaf)
+add_math_entrypoint_object(fmaf16)
+add_math_entrypoint_object(fmabf16)
+
+add_math_entrypoint_object(fmax)
+add_math_entrypoint_object(fmaxf)
+add_math_entrypoint_object(fmaxl)
+add_math_entrypoint_object(fmaxf128)
+add_math_entrypoint_object(fmaxf16)
+add_math_entrypoint_object(fmaxbf16)
+
+add_math_entrypoint_object(fmin)
+add_math_entrypoint_object(fminf)
+add_math_entrypoint_object(fminl)
+add_math_entrypoint_object(fminf128)
+add_math_entrypoint_object(fminf16)
+add_math_entrypoint_object(fminbf16)
+
+add_math_entrypoint_object(fmaximum)
+add_math_entrypoint_object(fmaximumf)
+add_math_entrypoint_object(fmaximuml)
+add_math_entrypoint_object(fmaximumf16)
+add_math_entrypoint_object(fmaximumf128)
+add_math_entrypoint_object(fmaximumbf16)
+
+add_math_entrypoint_object(fmaximum_num)
+add_math_entrypoint_object(fmaximum_numf)
+add_math_entrypoint_object(fmaximum_numl)
+add_math_entrypoint_object(fmaximum_numf16)
+add_math_entrypoint_object(fmaximum_numf128)
+add_math_entrypoint_object(fmaximum_numbf16)
+
+add_math_entrypoint_object(fmaximum_mag)
+add_math_entrypoint_object(fmaximum_magf)
+add_math_entrypoint_object(fmaximum_magl)
+add_math_entrypoint_object(fmaximum_magf16)
+add_math_entrypoint_object(fmaximum_magf128)
+add_math_entrypoint_object(fmaximum_magbf16)
+
+add_math_entrypoint_object(fmaximum_mag_num)
+add_math_entrypoint_object(fmaximum_mag_numf)
+add_math_entrypoint_object(fmaximum_mag_numl)
+add_math_entrypoint_object(fmaximum_mag_numf16)
+add_math_entrypoint_object(fmaximum_mag_numf128)
+add_math_entrypoint_object(fmaximum_mag_numbf16)
+
+add_math_entrypoint_object(fminimum)
+add_math_entrypoint_object(fminimumf)
+add_math_entrypoint_object(fminimuml)
+add_math_entrypoint_object(fminimumf16)
+add_math_entrypoint_object(fminimumf128)
+add_math_entrypoint_object(fminimumbf16)
+
+add_math_entrypoint_object(fminimum_num)
+add_math_entrypoint_object(fminimum_numf)
+add_math_entrypoint_object(fminimum_numl)
+add_math_entrypoint_object(fminimum_numf16)
+add_math_entrypoint_object(fminimum_numf128)
+add_math_entrypoint_object(fminimum_numbf16)
+
+add_math_entrypoint_object(fminimum_mag)
+add_math_entrypoint_object(fminimum_magf)
+add_math_entrypoint_object(fminimum_magl)
+add_math_entrypoint_object(fminimum_magf16)
+add_math_entrypoint_object(fminimum_magf128)
+add_math_entrypoint_object(fminimum_magbf16)
+
+add_math_entrypoint_object(fminimum_mag_num)
+add_math_entrypoint_object(fminimum_mag_numf)
+add_math_entrypoint_object(fminimum_mag_numl)
+add_math_entrypoint_object(fminimum_mag_numf16)
+add_math_entrypoint_object(fminimum_mag_numf128)
+add_math_entrypoint_object(fminimum_mag_numbf16)
+
+add_math_entrypoint_object(fmul)
+add_math_entrypoint_object(fmull)
+add_math_entrypoint_object(fmulf128)
+
+add_math_entrypoint_object(fmod)
+add_math_entrypoint_object(fmodf)
+add_math_entrypoint_object(fmodl)
+add_math_entrypoint_object(fmodf16)
+add_math_entrypoint_object(fmodf128)
+add_math_entrypoint_object(fmodbf16)
+
+add_math_entrypoint_object(frexp)
+add_math_entrypoint_object(frexpf)
+add_math_entrypoint_object(frexpl)
+add_math_entrypoint_object(frexpf16)
+add_math_entrypoint_object(frexpf128)
+add_math_entrypoint_object(frexpbf16)
+
+add_math_entrypoint_object(fromfp)
+add_math_entrypoint_object(fromfpf)
+add_math_entrypoint_object(fromfpl)
+add_math_entrypoint_object(fromfpf16)
+add_math_entrypoint_object(fromfpf128)
+add_math_entrypoint_object(fromfpbf16)
+
+add_math_entrypoint_object(fromfpx)
+add_math_entrypoint_object(fromfpxf)
+add_math_entrypoint_object(fromfpxl)
+add_math_entrypoint_object(fromfpxf16)
+add_math_entrypoint_object(fromfpxf128)
+add_math_entrypoint_object(fromfpxbf16)
+
+add_math_entrypoint_object(fsub)
+add_math_entrypoint_object(fsubl)
+add_math_entrypoint_object(fsubf128)
+
+add_math_entrypoint_object(getpayload)
+add_math_entrypoint_object(getpayloadf)
+add_math_entrypoint_object(getpayloadl)
+add_math_entrypoint_object(getpayloadf16)
+add_math_entrypoint_object(getpayloadf128)
+add_math_entrypoint_object(getpayloadbf16)
+
+add_math_entrypoint_object(hypot)
+add_math_entrypoint_object(hypotf)
+add_math_entrypoint_object(hypotf16)
+
+add_math_entrypoint_object(ilogb)
+add_math_entrypoint_object(ilogbf)
+add_math_entrypoint_object(ilogbl)
+add_math_entrypoint_object(ilogbf16)
+add_math_entrypoint_object(ilogbf128)
+add_math_entrypoint_object(ilogbbf16)
+
+add_math_entrypoint_object(isnan)
+add_math_entrypoint_object(isnanf)
+add_math_entrypoint_object(isnanl)
+
+add_math_entrypoint_object(issignaling)
+add_math_entrypoint_object(issignalingf)
+add_math_entrypoint_object(issignalingl)
+add_math_entrypoint_object(issignalingf16)
+add_math_entrypoint_object(issignalingf128)
+add_math_entrypoint_object(issignalingbf16)
+
+add_math_entrypoint_object(llogb)
+add_math_entrypoint_object(llogbf)
+add_math_entrypoint_object(llogbl)
+add_math_entrypoint_object(llogbf16)
+add_math_entrypoint_object(llogbf128)
+add_math_entrypoint_object(llogbbf16)
+
+add_math_entrypoint_object(ldexp)
+add_math_entrypoint_object(ldexpf)
+add_math_entrypoint_object(ldexpl)
+add_math_entrypoint_object(ldexpf16)
+add_math_entrypoint_object(ldexpf128)
+add_math_entrypoint_object(ldexpbf16)
+
+add_math_entrypoint_object(log10)
+add_math_entrypoint_object(log10f)
+add_math_entrypoint_object(log10f16)
+
+add_math_entrypoint_object(log1p)
+add_math_entrypoint_object(log1pf)
+
+add_math_entrypoint_object(log2)
+add_math_entrypoint_object(log2f)
+add_math_entrypoint_object(log2f16)
+
+add_math_entrypoint_object(log)
+add_math_entrypoint_object(logf)
+add_math_entrypoint_object(logf16)
+add_math_entrypoint_object(log_bf16)
+
+add_math_entrypoint_object(logb)
+add_math_entrypoint_object(logbf)
+add_math_entrypoint_object(logbl)
+add_math_entrypoint_object(logbf16)
+add_math_entrypoint_object(logbf128)
+add_math_entrypoint_object(logbbf16)
+
+add_math_entrypoint_object(llrint)
+add_math_entrypoint_object(llrintf)
+add_math_entrypoint_object(llrintl)
+add_math_entrypoint_object(llrintf16)
+add_math_entrypoint_object(llrintf128)
+add_math_entrypoint_object(llrintbf16)
+
+add_math_entrypoint_object(llround)
+add_math_entrypoint_object(llroundf)
+add_math_entrypoint_object(llroundl)
+add_math_entrypoint_object(llroundf16)
+add_math_entrypoint_object(llroundf128)
+add_math_entrypoint_object(llroundbf16)
+
+add_math_entrypoint_object(lrint)
+add_math_entrypoint_object(lrintf)
+add_math_entrypoint_object(lrintl)
+add_math_entrypoint_object(lrintf16)
+add_math_entrypoint_object(lrintf128)
+add_math_entrypoint_object(lrintbf16)
+
+add_math_entrypoint_object(lround)
+add_math_entrypoint_object(lroundf)
+add_math_entrypoint_object(lroundl)
+add_math_entrypoint_object(lroundf16)
+add_math_entrypoint_object(lroundf128)
+add_math_entrypoint_object(lroundbf16)
+
+add_math_entrypoint_object(modf)
+add_math_entrypoint_object(modff)
+add_math_entrypoint_object(modfl)
+add_math_entrypoint_object(modff16)
+add_math_entrypoint_object(modff128)
+add_math_entrypoint_object(modfbf16)
+
+add_math_entrypoint_object(nan)
+add_math_entrypoint_object(nanf)
+add_math_entrypoint_object(nanl)
+add_math_entrypoint_object(nanf16)
+add_math_entrypoint_object(nanf128)
+add_math_entrypoint_object(nanbf16)
+
+add_math_entrypoint_object(nearbyint)
+add_math_entrypoint_object(nearbyintf)
+add_math_entrypoint_object(nearbyintl)
+add_math_entrypoint_object(nearbyintf16)
+add_math_entrypoint_object(nearbyintf128)
+add_math_entrypoint_object(nearbyintbf16)
+
+add_math_entrypoint_object(nextafter)
+add_math_entrypoint_object(nextafterf)
+add_math_entrypoint_object(nextafterl)
+add_math_entrypoint_object(nextafterf16)
+add_math_entrypoint_object(nextafterf128)
+add_math_entrypoint_object(nextafterbf16)
+
+add_math_entrypoint_object(nexttoward)
+add_math_entrypoint_object(nexttowardf)
+add_math_entrypoint_object(nexttowardl)
+add_math_entrypoint_object(nexttowardf16)
+add_math_entrypoint_object(nexttowardbf16)
+
+add_math_entrypoint_object(nextdown)
+add_math_entrypoint_object(nextdownf)
+add_math_entrypoint_object(nextdownl)
+add_math_entrypoint_object(nextdownf16)
+add_math_entrypoint_object(nextdownf128)
+add_math_entrypoint_object(nextdownbf16)
+
+add_math_entrypoint_object(nextup)
+add_math_entrypoint_object(nextupf)
+add_math_entrypoint_object(nextupl)
+add_math_entrypoint_object(nextupf16)
+add_math_entrypoint_object(nextupf128)
+add_math_entrypoint_object(nextupbf16)
+
+add_math_entrypoint_object(pow)
+add_math_entrypoint_object(powf)
+add_math_entrypoint_object(powi)
+add_math_entrypoint_object(powif)
+
+add_math_entrypoint_object(remainder)
+add_math_entrypoint_object(remainderf)
+add_math_entrypoint_object(remainderl)
+add_math_entrypoint_object(remainderf16)
+add_math_entrypoint_object(remainderf128)
+add_math_entrypoint_object(remainderbf16)
+
+add_math_entrypoint_object(remquo)
+add_math_entrypoint_object(remquof)
+add_math_entrypoint_object(remquol)
+add_math_entrypoint_object(remquof16)
+add_math_entrypoint_object(remquof128)
+add_math_entrypoint_object(remquobf16)
+
+add_math_entrypoint_object(rint)
+add_math_entrypoint_object(rintf)
+add_math_entrypoint_object(rintl)
+add_math_entrypoint_object(rintf16)
+add_math_entrypoint_object(rintf128)
+add_math_entrypoint_object(rintbf16)
+
+add_math_entrypoint_object(round)
+add_math_entrypoint_object(roundf)
+add_math_entrypoint_object(roundl)
+add_math_entrypoint_object(roundf16)
+add_math_entrypoint_object(roundf128)
+add_math_entrypoint_object(roundbf16)
+
+add_math_entrypoint_object(roundeven)
+add_math_entrypoint_object(roundevenf)
+add_math_entrypoint_object(roundevenl)
+add_math_entrypoint_object(roundevenf16)
+add_math_entrypoint_object(roundevenf128)
+add_math_entrypoint_object(roundevenbf16)
+
+add_math_entrypoint_object(rsqrtf)
+add_math_entrypoint_object(rsqrtf16)
+
+add_math_entrypoint_object(scalbln)
+add_math_entrypoint_object(scalblnf)
+add_math_entrypoint_object(scalblnl)
+add_math_entrypoint_object(scalblnf16)
+add_math_entrypoint_object(scalblnf128)
+add_math_entrypoint_object(scalblnbf16)
+
+add_math_entrypoint_object(scalbn)
+add_math_entrypoint_object(scalbnf)
+add_math_entrypoint_object(scalbnl)
+add_math_entrypoint_object(scalbnf16)
+add_math_entrypoint_object(scalbnf128)
+add_math_entrypoint_object(scalbnbf16)
+
+add_math_entrypoint_object(setpayload)
+add_math_entrypoint_object(setpayloadf)
+add_math_entrypoint_object(setpayloadl)
+add_math_entrypoint_object(setpayloadf16)
+add_math_entrypoint_object(setpayloadf128)
+add_math_entrypoint_object(setpayloadbf16)
+
+add_math_entrypoint_object(setpayloadsig)
+add_math_entrypoint_object(setpayloadsigf)
+add_math_entrypoint_object(setpayloadsigl)
+add_math_entrypoint_object(setpayloadsigf16)
+add_math_entrypoint_object(setpayloadsigf128)
+add_math_entrypoint_object(setpayloadsigbf16)
+
+add_math_entrypoint_object(sincos)
+add_math_entrypoint_object(sincosf)
+
+add_math_entrypoint_object(sin)
+add_math_entrypoint_object(sinf)
+add_math_entrypoint_object(sinf16)
+add_math_entrypoint_object(sinpif)
+add_math_entrypoint_object(sinpif16)
+
+add_math_entrypoint_object(sinh)
+add_math_entrypoint_object(sinhf)
+add_math_entrypoint_object(sinhf16)
+
+add_math_entrypoint_object(sqrt)
+add_math_entrypoint_object(sqrtf)
+add_math_entrypoint_object(sqrtl)
+add_math_entrypoint_object(sqrtf16)
+add_math_entrypoint_object(sqrtf128)
+add_math_entrypoint_object(sqrtbf16)
+
+add_math_entrypoint_object(tan)
+add_math_entrypoint_object(tanf)
+add_math_entrypoint_object(tanf16)
+
+add_math_entrypoint_object(tanh)
+add_math_entrypoint_object(tanhf)
+add_math_entrypoint_object(tanhf16)
+
+add_math_entrypoint_object(tanpif)
+add_math_entrypoint_object(tanpif16)
+
+add_math_entrypoint_object(tgamma)
+add_math_entrypoint_object(tgammaf)
+add_math_entrypoint_object(lgamma)
+add_math_entrypoint_object(lgamma_r)
+
+add_math_entrypoint_object(totalorder)
+add_math_entrypoint_object(totalorderf)
+add_math_entrypoint_object(totalorderl)
+add_math_entrypoint_object(totalorderf16)
+add_math_entrypoint_object(totalorderf128)
+add_math_entrypoint_object(totalorderbf16)
+
+add_math_entrypoint_object(totalordermag)
+add_math_entrypoint_object(totalordermagf)
+add_math_entrypoint_object(totalordermagl)
+add_math_entrypoint_object(totalordermagf16)
+add_math_entrypoint_object(totalordermagf128)
+add_math_entrypoint_object(totalordermagbf16)
+
+add_math_entrypoint_object(trunc)
+add_math_entrypoint_object(truncf)
+add_math_entrypoint_object(truncl)
+add_math_entrypoint_object(truncf16)
+add_math_entrypoint_object(truncf128)
+add_math_entrypoint_object(truncbf16)
+
+add_math_entrypoint_object(ufromfp)
+add_math_entrypoint_object(ufromfpf)
+add_math_entrypoint_object(ufromfpl)
+add_math_entrypoint_object(ufromfpf16)
+add_math_entrypoint_object(ufromfpf128)
+add_math_entrypoint_object(ufromfpbf16)
+
+add_math_entrypoint_object(ufromfpx)
+add_math_entrypoint_object(ufromfpxf)
+add_math_entrypoint_object(ufromfpxl)
+add_math_entrypoint_object(ufromfpxf16)
+add_math_entrypoint_object(ufromfpxf128)
+add_math_entrypoint_object(ufromfpxbf16)
+
+add_math_entrypoint_object(bf16add)
+add_math_entrypoint_object(bf16addf)
+add_math_entrypoint_object(bf16addl)
+add_math_entrypoint_object(bf16addf128)
+
+add_math_entrypoint_object(bf16div)
+add_math_entrypoint_object(bf16divf)
+add_math_entrypoint_object(bf16divl)
+add_math_entrypoint_object(bf16divf128)
+
+add_math_entrypoint_object(bf16fma)
+add_math_entrypoint_object(bf16fmaf)
+add_math_entrypoint_object(bf16fmal)
+add_math_entrypoint_object(bf16fmaf128)
+
+add_math_entrypoint_object(bf16mul)
+add_math_entrypoint_object(bf16mulf)
+add_math_entrypoint_object(bf16mull)
+add_math_entrypoint_object(bf16mulf128)
+
+add_math_entrypoint_object(bf16sub)
+add_math_entrypoint_object(bf16subf)
+add_math_entrypoint_object(bf16subl)
+add_math_entrypoint_object(bf16subf128)
diff --git a/libc/src/math/ffmal.h b/libc/src/math/ffmal.h
index 1cbb61dcd2134..75fd40a0a92a2 100644
--- a/libc/src/math/ffmal.h
+++ b/libc/src/math/ffmal.h
@@ -1,20 +1,20 @@
-//===-- Implementation header for ffmal -------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIBC_SRC_MATH_FFMAL_H
-#define LLVM_LIBC_SRC_MATH_FFMAL_H
-
-#include "src/__support/macros/config.h"
-
-namespace LIBC_NAMESPACE_DECL {
-
-float ffmal(long double x, long double y, long double z);
-
-} // namespace LIBC_NAMESPACE_DECL
-
-#endif // LLVM_LIBC_SRC_MATH_FFMAL_H
+//===-- Implementation header for ffmal -------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC_MATH_FFMAL_H
+#define LLVM_LIBC_SRC_MATH_FFMAL_H
+
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+float ffmal(long double x, long double y, long double z);
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC_MATH_FFMAL_H
>From 2ee10dd300034199490b81c5dd32f6c4f0b3984f Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 9 Feb 2026 18:50:42 +0530
Subject: [PATCH 05/43] crlf->lf 4
---
libc/test/src/math/CMakeLists.txt | 6964 ++++++++++++++---------------
1 file changed, 3482 insertions(+), 3482 deletions(-)
diff --git a/libc/test/src/math/CMakeLists.txt b/libc/test/src/math/CMakeLists.txt
index e478b57c9b3c8..abfd40f98a29a 100644
--- a/libc/test/src/math/CMakeLists.txt
+++ b/libc/test/src/math/CMakeLists.txt
@@ -1,3482 +1,3482 @@
-add_custom_target(libc-math-unittests)
-
-add_fp_unittest(
- cosf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cosf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cosf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- cosf_float_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cosf_float_test.cpp
- DEPENDS
- libc.src.__support.math.sincosf_utils
- libc.src.__support.FPUtil.fp_bits
- FLAGS
- FMA_OPT__ONLY
-)
-
-add_fp_unittest(
- cos_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cos_test.cpp
- DEPENDS
- libc.src.math.cos
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- cosf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cosf16_test.cpp
- DEPENDS
- libc.src.math.cosf16
-)
-
-add_fp_unittest(
- cospif_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cospif_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cospif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-
-add_fp_unittest(
- cospif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cospif16_test.cpp
- DEPENDS
- libc.src.math.cospif16
-)
-
-add_fp_unittest(
- daddl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- daddl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.daddl
-)
-
-add_fp_unittest(
- sinf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinf_float_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinf_float_test.cpp
- DEPENDS
- libc.src.__support.math.sincosf_utils
- libc.src.__support.FPUtil.fp_bits
- FLAGS
- FMA_OPT__ONLY
-)
-
-add_fp_unittest(
- sinf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinf16_test.cpp
- DEPENDS
- libc.src.math.sinf16
-)
-
-add_fp_unittest(
- sinpif_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinpif_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinpif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinpif16_test.cpp
- DEPENDS
- libc.src.math.sinpif16
-)
-
-add_fp_unittest(
- sin_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sin_test.cpp
- DEPENDS
- libc.src.math.sin
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sincosf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sincosf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sincosf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sincos_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sincos_test.cpp
- DEPENDS
- libc.src.math.sincos
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanf16_test.cpp
- DEPENDS
- libc.src.math.tanf16
-)
-
-add_fp_unittest(
- tanpif_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanpif_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.src.math.tanpif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanpif16_test.cpp
- DEPENDS
- libc.src.math.tanpif16
-)
-
-add_fp_unittest(
- fabs_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fabs_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabs
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fabsf_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fabsl_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fadd_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fadd_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.fadd
- libc.src.__support.FPUtil.basic_operations
-)
-
-add_fp_unittest(
- faddl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- faddl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.faddl
-)
-
-add_fp_unittest(
- trunc_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- trunc_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.trunc
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- truncf_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- truncl_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- truncf16_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceil_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ceil_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceil
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ceilf_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceill_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ceill_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceill
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ceilf16_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floor_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- floor_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floor
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- floorf_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- floorl_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- floorf16_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- round_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- round_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.round
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundf_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundl_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundf16_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundeven_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundeven_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundeven
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundevenf_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundevenl_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- roundevenf16_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lround_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lround_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lround
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lroundf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lroundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lroundl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lroundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lroundf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lroundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lroundbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.lroundbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llround_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llround_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llround
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llroundf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llroundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llroundl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llroundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llroundf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llroundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llroundbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.errno.errno
- libc.src.math.llroundbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nearbyint_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyint_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyint
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
-)
-
-add_fp_unittest(
- nearbyintf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyintf_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
-)
-
-add_fp_unittest(
- nearbyintl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyintl_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
-)
-
-add_fp_unittest(
- nearbyintf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyintf16_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
-)
-
-add_fp_unittest(
- nearbyintbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- nearbyintbf16_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.src.math.nearbyintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- rint_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rint_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rintf_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rintl_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rintf16_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rintbf16_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.rintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrint_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrint_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrintf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrintl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrintf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- lrintbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.lrintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrint_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrint_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrintf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrintl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrintf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- llrintbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.math.llrintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp_test.cpp
- DEPENDS
- libc.src.math.exp
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expf_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.expf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expf16_test.cpp
- DEPENDS
- libc.src.math.expf16
-)
-
-add_fp_unittest(
- exp2_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2_test.cpp
- DEPENDS
- libc.src.math.exp2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.exp2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2f16_test.cpp
- DEPENDS
- libc.src.math.exp2f16
-)
-
-add_fp_unittest(
- exp2m1f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2m1f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.exp2m1f
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2m1f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp2m1f16_test.cpp
- DEPENDS
- libc.src.math.exp2m1f16
-)
-
-add_fp_unittest(
- exp10_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10_test.cpp
- DEPENDS
- libc.src.math.exp10
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp10f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.exp10f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp10f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10f16_test.cpp
- DEPENDS
- libc.src.math.exp10f16
-)
-
-add_fp_unittest(
- exp10m1f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10m1f16_test.cpp
- DEPENDS
- libc.src.math.exp10m1f16
-)
-
-add_fp_unittest(
- exp10m1f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- exp10m1f_test.cpp
- DEPENDS
- libc.hdr.math_macros
- libc.src.errno.errno
- libc.src.math.exp10m1f
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysign_test
- SUITE
- libc-math-unittests
- SRCS
- copysign_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysign
- libc.src.__support.FPUtil.fp_bits
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- copysignf_test
- SUITE
- libc-math-unittests
- SRCS
- copysignf_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignf
- libc.src.__support.FPUtil.fp_bits
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- copysignl_test
- SUITE
- libc-math-unittests
- SRCS
- copysignl_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignl
- libc.src.__support.FPUtil.fp_bits
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- frexp_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- frexp_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexp
- libc.src.__support.FPUtil.basic_operations
-)
-
-add_fp_unittest(
- frexpf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- frexpf_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpf
- libc.src.__support.FPUtil.basic_operations
-)
-
-add_fp_unittest(
- frexpl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- frexpl_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpl
- libc.src.__support.FPUtil.basic_operations
-)
-
-add_fp_unittest(
- ilogb_test
- SUITE
- libc-math-unittests
- SRCS
- ilogb_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogb
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbf_test
- SUITE
- libc-math-unittests
- SRCS
- ilogbf_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbf
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbl_test
- SUITE
- libc-math-unittests
- SRCS
- ilogbl_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbl
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ldexp_test
- SUITE
- libc-math-unittests
- SRCS
- ldexp_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexp
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpf_test
- SUITE
- libc-math-unittests
- SRCS
- ldexpf_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpf
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpl_test
- SUITE
- libc-math-unittests
- SRCS
- ldexpl_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpl
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- logb_test
- SUITE
- libc-math-unittests
- SRCS
- logb_test.cpp
- DEPENDS
- libc.src.math.logb
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbf_test
- SUITE
- libc-math-unittests
- SRCS
- logbf_test.cpp
- DEPENDS
- libc.src.math.logbf
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbl_test
- SUITE
- libc-math-unittests
- SRCS
- logbl_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbl
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- modf_test
- SUITE
- libc-math-unittests
- SRCS
- modf_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
- # Requires C++ limits.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- modff_test
- SUITE
- libc-math-unittests
- SRCS
- modff_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modff
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
- # Requires C++ limits.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- modfl_test
- SUITE
- libc-math-unittests
- SRCS
- modfl_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modfl
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- fdimf_test
- SUITE
- libc-math-unittests
- SRCS
- fdimf_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdim_test
- SUITE
- libc-math-unittests
- SRCS
- fdim_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdim
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdiml_test
- SUITE
- libc-math-unittests
- SRCS
- fdiml_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdiml
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminf_test
- SUITE
- libc-math-unittests
- SRCS
- fminf_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmin_test
- SUITE
- libc-math-unittests
- SRCS
- fmin_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fmin
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminl_test
- SUITE
- libc-math-unittests
- SRCS
- fminl_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxf_test
- SUITE
- libc-math-unittests
- SRCS
- fmaxf_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmax_test
- SUITE
- libc-math-unittests
- SRCS
- fmax_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmax
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxl_test
- SUITE
- libc-math-unittests
- SRCS
- fmaxl_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sqrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf
-)
-
-add_fp_unittest(
- sqrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrt
-)
-
-add_fp_unittest(
- sqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtl
-)
-
-add_fp_unittest(
- rsqrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rsqrtf_test.cpp
- DEPENDS
- libc.src.math.rsqrtf
-)
-
-add_fp_unittest(
- rsqrtf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- rsqrtf16_test.cpp
- DEPENDS
- libc.src.math.rsqrtf16
-)
-
-add_fp_unittest(
- sqrtf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtf16_test.cpp
- DEPENDS
- libc.src.math.sqrtf16
-)
-
-add_fp_unittest(
- sqrtf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf128
-)
-
-add_fp_unittest(
- sqrtbf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sqrtbf16_test.cpp
- DEPENDS
- libc.src.math.sqrtbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- generic_sqrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- generic_sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- generic_sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrt
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- generic_sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtl
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- remquof_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- remquof_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquof
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquo_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- remquo_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquo
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquol_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- remquol_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquol
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypotf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- hypotf_test.cpp
- DEPENDS
- libc.src.math.hypotf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypot_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- hypot_test.cpp
- DEPENDS
- libc.src.math.hypot
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypotf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- hypotf16_test.cpp
- DEPENDS
- libc.src.math.hypotf16
-)
-
-add_fp_unittest(
- nextafter_test
- SUITE
- libc-math-unittests
- SRCS
- nextafter_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.src.math.nextafter
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf_test
- SUITE
- libc-math-unittests
- SRCS
- nextafterf_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.src.math.nextafterf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterl_test
- SUITE
- libc-math-unittests
- SRCS
- nextafterl_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.src.math.nextafterl
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf128_test
- SUITE
- libc-math-unittests
- SRCS
- nextafterf128_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.src.math.nextafterf128
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-# TODO(lntue): The current implementation of fputil::general::fma<float> is only
-# correctly rounded for the default rounding mode round-to-nearest tie-to-even.
-add_fp_unittest(
- fmaf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmaf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- FLAGS
- FMA_OPT__ONLY
-)
-
-add_fp_unittest(
- fmaf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fmaf16_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmaf16
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- fmabf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fmabf16_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmabf16
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- fma_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fma
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- tan_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tan_test.cpp
- DEPENDS
- libc.src.math.tan
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expm1_test.cpp
- DEPENDS
- libc.src.math.expm1
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expm1f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.expm1f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- expm1f16_test.cpp
- DEPENDS
- libc.src.math.expm1f16
-)
-
-add_fp_unittest(
- log_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log_test.cpp
- DEPENDS
- libc.src.math.log
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- logf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- logf_test.cpp
- DEPENDS
- libc.src.math.logf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- logf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- logf16_test.cpp
- DEPENDS
- libc.src.math.logf16
-)
-
-add_fp_unittest(
- log_bf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log_bf16_test.cpp
- DEPENDS
- libc.src.math.log_bf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
-log2_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log2_test.cpp
- DEPENDS
- libc.src.math.log2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log2f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log2f_test.cpp
- DEPENDS
- libc.src.errno.errno
- libc.src.math.log2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log2f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log2f16_test.cpp
- DEPENDS
- libc.src.math.log2f16
-)
-
-add_fp_unittest(
- log10_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log10_test.cpp
- DEPENDS
- libc.src.math.log10
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log10f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log10f_test.cpp
- DEPENDS
- libc.src.math.log10f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log10f16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log10f16_test.cpp
- DEPENDS
- libc.src.math.log10f16
-)
-
-add_fp_unittest(
-log1p_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log1p_test.cpp
- DEPENDS
- libc.src.math.log1p
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log1pf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- log1pf_test.cpp
- DEPENDS
- libc.src.math.log1pf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmodf_test
- SUITE
- libc-math-unittests
- SRCS
- fmodf_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.fmodf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmod_test
- SUITE
- libc-math-unittests
- SRCS
- fmod_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.fmod
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- explogxf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- HDRS
- in_float_range_test_helper.h
- SRCS
- explogxf_test.cpp
- DEPENDS
- libc.src.math.generic.explogxf
- libc.src.math.fabs
- libc.src.math.fabsf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- coshf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- coshf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.coshf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- coshf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- coshf16_test.cpp
- DEPENDS
- libc.src.math.coshf16
-)
-
-add_fp_unittest(
- sinhf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinhf_test.cpp
- HDRS
- sdcomp26094.h
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinhf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinhf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sinhf16_test.cpp
- DEPENDS
- libc.src.math.sinhf16
-)
-
-add_fp_unittest(
- tanhf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanhf_test.cpp
- DEPENDS
- libc.src.math.tanhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanhf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- tanhf16_test.cpp
- DEPENDS
- libc.src.math.tanhf16
-)
-
-add_fp_unittest(
- atanhf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.atanhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atanhf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanhf16_test.cpp
- DEPENDS
- libc.src.math.atanhf16
-)
-
-add_fp_unittest(
- atanpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanpif16_test.cpp
- DEPENDS
- libc.src.math.atanpif16
-)
-
-add_fp_unittest(
- fmul_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fmul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.fmul
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- fmull_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fmull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.fmull
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- asinhf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinhf_test.cpp
- DEPENDS
- libc.src.math.asinhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- asinhf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinhf16_test.cpp
- DEPENDS
- libc.src.math.asinhf16
-)
-
-add_fp_unittest(
- acoshf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acoshf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acoshf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- acoshf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acoshf16_test.cpp
- DEPENDS
- libc.src.math.acoshf16
-)
-
-add_fp_unittest(
- asinf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- asin_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asin_test.cpp
- DEPENDS
- libc.src.math.asin
-)
-
-add_fp_unittest(
- asinf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinf16_test.cpp
- DEPENDS
- libc.src.math.asinf16
-)
-
-add_fp_unittest(
- asinpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinpif16_test.cpp
- DEPENDS
- libc.src.math.asinpif16
-)
-
-add_fp_unittest(
- acosf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acosf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acosf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- acos_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acos_test.cpp
- DEPENDS
- libc.src.math.acos
-)
-
-add_fp_unittest(
- acosf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acosf16_test.cpp
- DEPENDS
- libc.src.math.acosf16
-)
-
-add_fp_unittest(
- acospif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- acospif16_test.cpp
- DEPENDS
- libc.src.math.acospif16
-)
-
-add_fp_unittest(
- atanf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanf_test.cpp
- DEPENDS
- libc.src.math.atanf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atan_test.cpp
- DEPENDS
- libc.src.math.atan
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atanf16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanf16_test.cpp
- DEPENDS
- libc.src.math.atanf16
-)
-
-add_fp_unittest(
- scalbn_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- scalbn_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbn
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- scalbnf_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- scalbnl_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnl
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- scalbnf128_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf128
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- erff_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- erff_test.cpp
- DEPENDS
- libc.src.math.erff
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- pow_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- pow_test.cpp
- DEPENDS
- libc.src.math.pow
-)
-
-add_fp_unittest(
- powf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- powf_test.cpp
- DEPENDS
- libc.src.math.powf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan2f_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atan2f_test.cpp
- DEPENDS
- libc.src.math.atan2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan2_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atan2_test.cpp
- DEPENDS
- libc.src.math.atan2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan2f128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atan2f128_test.cpp
- DEPENDS
- libc.src.math.atan2f128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- f16add_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.f16add
-)
-
-add_fp_unittest(
- f16addf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16addf_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.f16addf
-)
-
-add_fp_unittest(
- f16addl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16addl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.f16addl
-)
-
-add_fp_unittest(
- f16sub_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.f16sub
-)
-
-add_fp_unittest(
- f16subf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16subf_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.f16subf
-)
-
-add_fp_unittest(
- f16subl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16subl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.f16subl
-)
-
-add_fp_unittest(
- f16div_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.f16div
-)
-
-add_fp_unittest(
- f16divf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16divf_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.f16divf
-)
-
-add_fp_unittest(
- f16divl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16divl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.f16divl
-)
-
-add_fp_unittest(
- f16fma_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fma
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16fmaf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmaf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16fmal_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16fmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmal
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16sqrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrt
-)
-
-add_fp_unittest(
- f16sqrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtf
-)
-
-add_fp_unittest(
- f16sqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtl
-)
-
-add_fp_unittest(
- fsqrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fsqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrt
-)
-
-add_fp_unittest(
- fsqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fsqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrtl
-)
-
-add_fp_unittest(
- fsub_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fsub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.fsub
-)
-
-add_fp_unittest(
- fsubl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fsubl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.fsubl
-)
-
-add_fp_unittest(
- dsqrtl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- dsqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.dsqrtl
-)
-
-add_fp_unittest(
- cbrtf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cbrtf_test.cpp
- DEPENDS
- libc.src.math.cbrtf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- cbrt_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- cbrt_test.cpp
- DEPENDS
- libc.src.math.cbrt
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- dmull_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- dmull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.dmull
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16mul_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.f16mul
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16mulf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16mulf_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.f16mulf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- f16mull_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- f16mull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.f16mull
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- ddivl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ddivl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.ddivl
-)
-
-add_fp_unittest(
- dfmal_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- dfmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.dfmal
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- dsubl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- dsubl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.dsubl
-)
-
-add_fp_unittest(
- fdiv_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fdiv_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.fdiv
-)
-
-add_fp_unittest(
- fdivl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- fdivl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.fdivl
-)
-
-add_fp_unittest(
- ffma_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ffma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffma
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- ffmal_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- ffmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffmal
- libc.src.stdlib.rand
- libc.src.stdlib.srand
-)
-
-add_fp_unittest(
- add_same_type_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- add_same_type_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- sub_same_type_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- sub_same_type_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- bf16add_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.bf16add
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16addf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16addf_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.bf16addf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16addl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16addl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.bf16addl
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16addf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16addf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.math.bf16addf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16div_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.bf16div
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16divf_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.bf16divf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16divl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.bf16divl
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16divf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.bf16divf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fma_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.bf16fma
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmaf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.bf16fmaf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmal_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16fmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.bf16fmal
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmaf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16fmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.bf16fmaf128
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mul_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.bf16mul
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mulf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16mulf_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.bf16mulf
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mull_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16mull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.bf16mull
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mulf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16mulf128_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.math.bf16mulf128
- libc.src.stdlib.rand
- libc.src.stdlib.srand
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16sub_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.bf16sub
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16subf_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16subf_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.bf16subf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16subl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16subl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.bf16subl
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16subf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- bf16subf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.math.bf16subf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_subdirectory(generic)
-add_subdirectory(smoke)
-
-if(NOT LLVM_LIBC_FULL_BUILD)
- add_subdirectory(exhaustive)
- add_subdirectory(performance_testing)
-endif()
+add_custom_target(libc-math-unittests)
+
+add_fp_unittest(
+ cosf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cosf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cosf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ cosf_float_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cosf_float_test.cpp
+ DEPENDS
+ libc.src.__support.math.sincosf_utils
+ libc.src.__support.FPUtil.fp_bits
+ FLAGS
+ FMA_OPT__ONLY
+)
+
+add_fp_unittest(
+ cos_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cos_test.cpp
+ DEPENDS
+ libc.src.math.cos
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ cosf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cosf16_test.cpp
+ DEPENDS
+ libc.src.math.cosf16
+)
+
+add_fp_unittest(
+ cospif_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cospif_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cospif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+
+add_fp_unittest(
+ cospif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cospif16_test.cpp
+ DEPENDS
+ libc.src.math.cospif16
+)
+
+add_fp_unittest(
+ daddl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ daddl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.daddl
+)
+
+add_fp_unittest(
+ sinf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinf_float_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinf_float_test.cpp
+ DEPENDS
+ libc.src.__support.math.sincosf_utils
+ libc.src.__support.FPUtil.fp_bits
+ FLAGS
+ FMA_OPT__ONLY
+)
+
+add_fp_unittest(
+ sinf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinf16_test.cpp
+ DEPENDS
+ libc.src.math.sinf16
+)
+
+add_fp_unittest(
+ sinpif_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinpif_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinpif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinpif16_test.cpp
+ DEPENDS
+ libc.src.math.sinpif16
+)
+
+add_fp_unittest(
+ sin_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sin_test.cpp
+ DEPENDS
+ libc.src.math.sin
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sincosf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sincosf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sincosf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sincos_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sincos_test.cpp
+ DEPENDS
+ libc.src.math.sincos
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanf16_test.cpp
+ DEPENDS
+ libc.src.math.tanf16
+)
+
+add_fp_unittest(
+ tanpif_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanpif_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.src.math.tanpif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanpif16_test.cpp
+ DEPENDS
+ libc.src.math.tanpif16
+)
+
+add_fp_unittest(
+ fabs_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fabs_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabs
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fabsf_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fabsl_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fadd_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fadd_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.fadd
+ libc.src.__support.FPUtil.basic_operations
+)
+
+add_fp_unittest(
+ faddl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ faddl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.faddl
+)
+
+add_fp_unittest(
+ trunc_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ trunc_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.trunc
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ truncf_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ truncl_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ truncf16_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceil_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ceil_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceil
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ceilf_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceill_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ceill_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceill
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ceilf16_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floor_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ floor_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floor
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ floorf_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ floorl_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ floorf16_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ round_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ round_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.round
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundf_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundl_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundf16_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundeven_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundeven_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundeven
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundevenf_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundevenl_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ roundevenf16_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lround_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lround_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lround
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lroundf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lroundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lroundl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lroundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lroundf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lroundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lroundbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.lroundbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llround_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llround_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llround
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llroundf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llroundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llroundl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llroundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llroundf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llroundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llroundbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.errno.errno
+ libc.src.math.llroundbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nearbyint_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyint_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+)
+
+add_fp_unittest(
+ nearbyintf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyintf_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+)
+
+add_fp_unittest(
+ nearbyintl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyintl_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+)
+
+add_fp_unittest(
+ nearbyintf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyintf16_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+)
+
+add_fp_unittest(
+ nearbyintbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ nearbyintbf16_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.src.math.nearbyintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ rint_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rint_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rintf_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rintl_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rintf16_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rintbf16_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.rintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrint_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrint_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrintf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrintl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrintf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ lrintbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.lrintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrint_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrint_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrintf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrintl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrintf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ llrintbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.math.llrintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp_test.cpp
+ DEPENDS
+ libc.src.math.exp
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expf_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.expf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expf16_test.cpp
+ DEPENDS
+ libc.src.math.expf16
+)
+
+add_fp_unittest(
+ exp2_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2_test.cpp
+ DEPENDS
+ libc.src.math.exp2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.exp2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2f16_test.cpp
+ DEPENDS
+ libc.src.math.exp2f16
+)
+
+add_fp_unittest(
+ exp2m1f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2m1f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.exp2m1f
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2m1f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp2m1f16_test.cpp
+ DEPENDS
+ libc.src.math.exp2m1f16
+)
+
+add_fp_unittest(
+ exp10_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10_test.cpp
+ DEPENDS
+ libc.src.math.exp10
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp10f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.exp10f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp10f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10f16_test.cpp
+ DEPENDS
+ libc.src.math.exp10f16
+)
+
+add_fp_unittest(
+ exp10m1f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10m1f16_test.cpp
+ DEPENDS
+ libc.src.math.exp10m1f16
+)
+
+add_fp_unittest(
+ exp10m1f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ exp10m1f_test.cpp
+ DEPENDS
+ libc.hdr.math_macros
+ libc.src.errno.errno
+ libc.src.math.exp10m1f
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysign_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ copysign_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysign
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ copysignf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ copysignf_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignf
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ copysignl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ copysignl_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignl
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ frexp_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ frexp_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexp
+ libc.src.__support.FPUtil.basic_operations
+)
+
+add_fp_unittest(
+ frexpf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ frexpf_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpf
+ libc.src.__support.FPUtil.basic_operations
+)
+
+add_fp_unittest(
+ frexpl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ frexpl_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpl
+ libc.src.__support.FPUtil.basic_operations
+)
+
+add_fp_unittest(
+ ilogb_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ilogb_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogb
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ilogbf_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbf
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ilogbl_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbl
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ldexp_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ldexp_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexp
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ldexpf_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpf
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ ldexpl_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpl
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ logb_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ logb_test.cpp
+ DEPENDS
+ libc.src.math.logb
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ logbf_test.cpp
+ DEPENDS
+ libc.src.math.logbf
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ logbl_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbl
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ modf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ modf_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+ # Requires C++ limits.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ modff_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ modff_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modff
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+ # Requires C++ limits.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ modfl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ modfl_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modfl
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ fdimf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdimf_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdim_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdim_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdim
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdiml_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdiml_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdiml
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fminf_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmin_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmin_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fmin
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fminl_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmaxf_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmax_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmax_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmax
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmaxl_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sqrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf
+)
+
+add_fp_unittest(
+ sqrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrt
+)
+
+add_fp_unittest(
+ sqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtl
+)
+
+add_fp_unittest(
+ rsqrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rsqrtf_test.cpp
+ DEPENDS
+ libc.src.math.rsqrtf
+)
+
+add_fp_unittest(
+ rsqrtf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ rsqrtf16_test.cpp
+ DEPENDS
+ libc.src.math.rsqrtf16
+)
+
+add_fp_unittest(
+ sqrtf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtf16_test.cpp
+ DEPENDS
+ libc.src.math.sqrtf16
+)
+
+add_fp_unittest(
+ sqrtf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf128
+)
+
+add_fp_unittest(
+ sqrtbf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sqrtbf16_test.cpp
+ DEPENDS
+ libc.src.math.sqrtbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ generic_sqrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ generic_sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ generic_sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrt
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ generic_sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtl
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ remquof_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ remquof_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquof
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquo_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ remquo_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquo
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquol_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ remquol_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquol
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypotf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ hypotf_test.cpp
+ DEPENDS
+ libc.src.math.hypotf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypot_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ hypot_test.cpp
+ DEPENDS
+ libc.src.math.hypot
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypotf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ hypotf16_test.cpp
+ DEPENDS
+ libc.src.math.hypotf16
+)
+
+add_fp_unittest(
+ nextafter_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ nextafter_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.src.math.nextafter
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ nextafterf_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.src.math.nextafterf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterl_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ nextafterl_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.src.math.nextafterl
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf128_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ nextafterf128_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.src.math.nextafterf128
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+# TODO(lntue): The current implementation of fputil::general::fma<float> is only
+# correctly rounded for the default rounding mode round-to-nearest tie-to-even.
+add_fp_unittest(
+ fmaf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmaf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ FLAGS
+ FMA_OPT__ONLY
+)
+
+add_fp_unittest(
+ fmaf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmaf16_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmaf16
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ fmabf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmabf16_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmabf16
+ libc.src.stdlib.rand
+ libc.src.stdlib.srandq
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ fma_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fma
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ tan_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tan_test.cpp
+ DEPENDS
+ libc.src.math.tan
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expm1_test.cpp
+ DEPENDS
+ libc.src.math.expm1
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expm1f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.expm1f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ expm1f16_test.cpp
+ DEPENDS
+ libc.src.math.expm1f16
+)
+
+add_fp_unittest(
+ log_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log_test.cpp
+ DEPENDS
+ libc.src.math.log
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ logf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ logf_test.cpp
+ DEPENDS
+ libc.src.math.logf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ logf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ logf16_test.cpp
+ DEPENDS
+ libc.src.math.logf16
+)
+
+add_fp_unittest(
+ log_bf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log_bf16_test.cpp
+ DEPENDS
+ libc.src.math.log_bf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+log2_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log2_test.cpp
+ DEPENDS
+ libc.src.math.log2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log2f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log2f_test.cpp
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.log2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log2f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log2f16_test.cpp
+ DEPENDS
+ libc.src.math.log2f16
+)
+
+add_fp_unittest(
+ log10_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log10_test.cpp
+ DEPENDS
+ libc.src.math.log10
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log10f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log10f_test.cpp
+ DEPENDS
+ libc.src.math.log10f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log10f16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log10f16_test.cpp
+ DEPENDS
+ libc.src.math.log10f16
+)
+
+add_fp_unittest(
+log1p_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log1p_test.cpp
+ DEPENDS
+ libc.src.math.log1p
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log1pf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ log1pf_test.cpp
+ DEPENDS
+ libc.src.math.log1pf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmodf_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmodf_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.fmodf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmod_test
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmod_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.fmod
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ explogxf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ HDRS
+ in_float_range_test_helper.h
+ SRCS
+ explogxf_test.cpp
+ DEPENDS
+ libc.src.math.generic.explogxf
+ libc.src.math.fabs
+ libc.src.math.fabsf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ coshf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ coshf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.coshf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ coshf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ coshf16_test.cpp
+ DEPENDS
+ libc.src.math.coshf16
+)
+
+add_fp_unittest(
+ sinhf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinhf_test.cpp
+ HDRS
+ sdcomp26094.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinhf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinhf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sinhf16_test.cpp
+ DEPENDS
+ libc.src.math.sinhf16
+)
+
+add_fp_unittest(
+ tanhf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanhf_test.cpp
+ DEPENDS
+ libc.src.math.tanhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanhf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ tanhf16_test.cpp
+ DEPENDS
+ libc.src.math.tanhf16
+)
+
+add_fp_unittest(
+ atanhf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.atanhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atanhf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanhf16_test.cpp
+ DEPENDS
+ libc.src.math.atanhf16
+)
+
+add_fp_unittest(
+ atanpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanpif16_test.cpp
+ DEPENDS
+ libc.src.math.atanpif16
+)
+
+add_fp_unittest(
+ fmul_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.fmul
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ fmull_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fmull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.fmull
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ asinhf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinhf_test.cpp
+ DEPENDS
+ libc.src.math.asinhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ asinhf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinhf16_test.cpp
+ DEPENDS
+ libc.src.math.asinhf16
+)
+
+add_fp_unittest(
+ acoshf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acoshf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acoshf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ acoshf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acoshf16_test.cpp
+ DEPENDS
+ libc.src.math.acoshf16
+)
+
+add_fp_unittest(
+ asinf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ asin_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asin_test.cpp
+ DEPENDS
+ libc.src.math.asin
+)
+
+add_fp_unittest(
+ asinf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinf16_test.cpp
+ DEPENDS
+ libc.src.math.asinf16
+)
+
+add_fp_unittest(
+ asinpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinpif16_test.cpp
+ DEPENDS
+ libc.src.math.asinpif16
+)
+
+add_fp_unittest(
+ acosf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acosf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acosf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ acos_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acos_test.cpp
+ DEPENDS
+ libc.src.math.acos
+)
+
+add_fp_unittest(
+ acosf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acosf16_test.cpp
+ DEPENDS
+ libc.src.math.acosf16
+)
+
+add_fp_unittest(
+ acospif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ acospif16_test.cpp
+ DEPENDS
+ libc.src.math.acospif16
+)
+
+add_fp_unittest(
+ atanf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanf_test.cpp
+ DEPENDS
+ libc.src.math.atanf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atan_test.cpp
+ DEPENDS
+ libc.src.math.atan
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atanf16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanf16_test.cpp
+ DEPENDS
+ libc.src.math.atanf16
+)
+
+add_fp_unittest(
+ scalbn_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ scalbn_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbn
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ scalbnf_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ scalbnl_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnl
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ scalbnf128_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf128
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ erff_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ erff_test.cpp
+ DEPENDS
+ libc.src.math.erff
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ pow_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ pow_test.cpp
+ DEPENDS
+ libc.src.math.pow
+)
+
+add_fp_unittest(
+ powf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ powf_test.cpp
+ DEPENDS
+ libc.src.math.powf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan2f_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atan2f_test.cpp
+ DEPENDS
+ libc.src.math.atan2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan2_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atan2_test.cpp
+ DEPENDS
+ libc.src.math.atan2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan2f128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atan2f128_test.cpp
+ DEPENDS
+ libc.src.math.atan2f128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ f16add_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.f16add
+)
+
+add_fp_unittest(
+ f16addf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16addf_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.f16addf
+)
+
+add_fp_unittest(
+ f16addl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16addl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.f16addl
+)
+
+add_fp_unittest(
+ f16sub_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.f16sub
+)
+
+add_fp_unittest(
+ f16subf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16subf_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.f16subf
+)
+
+add_fp_unittest(
+ f16subl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16subl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.f16subl
+)
+
+add_fp_unittest(
+ f16div_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.f16div
+)
+
+add_fp_unittest(
+ f16divf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16divf_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.f16divf
+)
+
+add_fp_unittest(
+ f16divl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16divl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.f16divl
+)
+
+add_fp_unittest(
+ f16fma_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fma
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16fmaf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmaf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16fmal_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16fmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmal
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16sqrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrt
+)
+
+add_fp_unittest(
+ f16sqrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtf
+)
+
+add_fp_unittest(
+ f16sqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtl
+)
+
+add_fp_unittest(
+ fsqrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fsqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrt
+)
+
+add_fp_unittest(
+ fsqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fsqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrtl
+)
+
+add_fp_unittest(
+ fsub_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fsub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.fsub
+)
+
+add_fp_unittest(
+ fsubl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fsubl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.fsubl
+)
+
+add_fp_unittest(
+ dsqrtl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ dsqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.dsqrtl
+)
+
+add_fp_unittest(
+ cbrtf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cbrtf_test.cpp
+ DEPENDS
+ libc.src.math.cbrtf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ cbrt_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ cbrt_test.cpp
+ DEPENDS
+ libc.src.math.cbrt
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ dmull_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ dmull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.dmull
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16mul_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.f16mul
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16mulf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16mulf_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.f16mulf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ f16mull_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ f16mull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.f16mull
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ ddivl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ddivl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.ddivl
+)
+
+add_fp_unittest(
+ dfmal_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ dfmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.dfmal
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ dsubl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ dsubl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.dsubl
+)
+
+add_fp_unittest(
+ fdiv_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdiv_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.fdiv
+)
+
+add_fp_unittest(
+ fdivl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ fdivl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.fdivl
+)
+
+add_fp_unittest(
+ ffma_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ffma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffma
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ ffmal_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ ffmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffmal
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+)
+
+add_fp_unittest(
+ add_same_type_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ add_same_type_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ sub_same_type_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ sub_same_type_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ bf16add_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.bf16add
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16addf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16addf_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.bf16addf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16addl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16addl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.bf16addl
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16addf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16addf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.math.bf16addf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16div_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.bf16div
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16divf_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.bf16divf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16divl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.bf16divl
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16divf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.bf16divf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fma_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.bf16fma
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmaf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.bf16fmaf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmal_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16fmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.bf16fmal
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmaf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16fmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.bf16fmaf128
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mul_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.bf16mul
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mulf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16mulf_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.bf16mulf
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mull_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16mull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.bf16mull
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mulf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16mulf128_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.math.bf16mulf128
+ libc.src.stdlib.rand
+ libc.src.stdlib.srand
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16sub_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.bf16sub
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16subf_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16subf_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.bf16subf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16subl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16subl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.bf16subl
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16subf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ bf16subf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.math.bf16subf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_subdirectory(generic)
+add_subdirectory(smoke)
+
+if(NOT LLVM_LIBC_FULL_BUILD)
+ add_subdirectory(exhaustive)
+ add_subdirectory(performance_testing)
+endif()
>From b4715244093fdda19fdeb71bc6d73b266eeb1223 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 9 Feb 2026 18:52:11 +0530
Subject: [PATCH 06/43] crl->lf 5
---
libc/test/src/math/bf16mul_test.cpp | 30 +-
libc/test/src/math/smoke/CMakeLists.txt | 13062 +++++++++++-----------
2 files changed, 6546 insertions(+), 6546 deletions(-)
diff --git a/libc/test/src/math/bf16mul_test.cpp b/libc/test/src/math/bf16mul_test.cpp
index 76bd3dba42566..3682705556b0a 100644
--- a/libc/test/src/math/bf16mul_test.cpp
+++ b/libc/test/src/math/bf16mul_test.cpp
@@ -1,15 +1,15 @@
-//===-- Unittests for bf16mul ---------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "MulTest.h"
-
-#include "src/math/bf16mul.h"
-
-#include "src/__support/FPUtil/bfloat16.h"
-
-LIST_MUL_TESTS(bfloat16, double, LIBC_NAMESPACE::bf16mul)
+//===-- Unittests for bf16mul ---------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "MulTest.h"
+
+#include "src/math/bf16mul.h"
+
+#include "src/__support/FPUtil/bfloat16.h"
+
+LIST_MUL_TESTS(bfloat16, double, LIBC_NAMESPACE::bf16mul)
diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt
index 73b72b69d883a..f0d07551fcf49 100644
--- a/libc/test/src/math/smoke/CMakeLists.txt
+++ b/libc/test/src/math/smoke/CMakeLists.txt
@@ -1,6531 +1,6531 @@
-add_custom_target(libc-math-smoke-tests)
-add_dependencies(libc-math-unittests libc-math-smoke-tests)
-
-add_fp_unittest(
- cosf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cosf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cosf
-)
-
-add_fp_unittest(
- cosf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cosf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cosf16
-)
-
-add_fp_unittest(
- cospif_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cospif_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cospif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- cospif16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cospif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.cospif16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- sinf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- sinpif_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinpif_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinpif
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinpif16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinpif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinpif16
-)
-
-add_fp_unittest(
- sincosf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sincosf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sincosf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanf16
-)
-
-add_fp_unittest(
- tanpif_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanpif_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanpif
-)
-
-add_fp_unittest(
- tanpif16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanpif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanpif16
-)
-
-add_fp_unittest(
- fabs_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabs_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabs
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsf_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsl_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsf16_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsf16
-)
-
-add_fp_unittest(
- fabsf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsf128_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.math.fabsf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fabsbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fabsbf16_test.cpp
- HDRS
- FAbsTest.h
- DEPENDS
- libc.src.__support.FPUtil.bfloat16
- libc.src.math.fabsbf16
-)
-
-add_fp_unittest(
- fadd_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fadd_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fadd
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- faddl_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- faddl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.faddl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- faddf128_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- faddf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.faddf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- trunc_test
- SUITE
- libc-math-smoke-tests
- SRCS
- trunc_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.trunc
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncf_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncl_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncf16_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf16
-)
-
-add_fp_unittest(
- truncf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncf128_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- truncbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- truncbf16_test.cpp
- HDRS
- TruncTest.h
- DEPENDS
- libc.src.math.truncbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- canonicalize_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalize_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalize
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizef_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizef_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizef
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizef16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizef16_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizef16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizef128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizef128_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizef128
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizel_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizel_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizel
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- canonicalizebf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- canonicalizebf16_test.cpp
- HDRS
- CanonicalizeTest.h
- DEPENDS
- libc.src.math.canonicalizebf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.integer_literals
-)
-
-add_fp_unittest(
- iscanonical_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonical_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonical
-)
-
-add_fp_unittest(
- iscanonicalf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicalf_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicalf
-)
-
-add_fp_unittest(
- iscanonicall_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicall_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicall
-)
-
-add_fp_unittest(
- iscanonicalf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicalf16_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicalf16
-)
-
-add_fp_unittest(
- iscanonicalf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicalf128_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicalf128
-)
-
-add_fp_unittest(
- iscanonicalbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- iscanonicalbf16_test.cpp
- HDRS
- IsCanonicalTest.h
- DEPENDS
- libc.src.math.iscanonicalbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- ceil_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceil_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceil
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceilf_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceill_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceill_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceill
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceilf16_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf16
-)
-
-add_fp_unittest(
- ceilf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceilf128_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- ceilbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ceilbf16_test.cpp
- HDRS
- CeilTest.h
- DEPENDS
- libc.src.math.ceilbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- dfmal_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dfmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.dfmal
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- dfmaf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dfmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.dfmaf128
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- dsubl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dsubl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.dsubl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- dsubf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dsubf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.dsubf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- floor_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floor_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floor
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorf_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorl_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorf16_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf16
-)
-
-add_fp_unittest(
- floorf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorf128_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- floorbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- floorbf16_test.cpp
- HDRS
- FloorTest.h
- DEPENDS
- libc.src.math.floorbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- round_test
- SUITE
- libc-math-smoke-tests
- SRCS
- round_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.round
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundf_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundl_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundf16_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf16
-)
-
-add_fp_unittest(
- roundf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundf128_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundbf16_test.cpp
- HDRS
- RoundTest.h
- DEPENDS
- libc.src.math.roundbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- roundeven_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundeven_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundeven
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenf_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenl_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenf16_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf16
-)
-
-add_fp_unittest(
- roundevenf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenf128_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenf128
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- roundevenbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- roundevenbf16_test.cpp
- HDRS
- RoundEvenTest.h
- DEPENDS
- libc.src.math.roundevenbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- lround_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lround_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lround
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundf128_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lroundbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lroundbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lroundbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llround_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llround_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llround
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundf128_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llroundbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llroundbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llroundbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rint_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rint_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rint
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintf_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintf
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintl_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintl
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintf16_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintf16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintf128_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintf128
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- rintbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rintbf16_test.cpp
- HDRS
- RIntTest.h
- DEPENDS
- libc.src.math.rintbf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrint_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrint_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintf128_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- lrintbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- lrintbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.lrintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrint_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrint_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrint
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintf_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintl_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintf128_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- llrintbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llrintbf16_test.cpp
- HDRS
- RoundToIntegerTest.h
- DEPENDS
- libc.src.errno.errno
- libc.src.math.llrintbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.expf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.expf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp2_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp2f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.exp2f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp2m1f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2m1f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp2m1f
-)
-
-add_fp_unittest(
- exp2m1f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp2m1f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.exp2m1f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp10_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp10
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp10f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp10f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- exp10f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.exp10f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp10m1f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10m1f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.exp10m1f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- exp10m1f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- exp10m1f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.exp10m1f
-)
-
-add_fp_unittest(
- copysign_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysign_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysign
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignf_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignl_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignf16_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignf128_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- copysignbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- copysignbf16_test.cpp
- HDRS
- CopySignTest.h
- DEPENDS
- libc.src.math.copysignbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- frexp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexp_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexp
-)
-
-add_fp_unittest(
- frexpf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpf_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpf
-)
-
-add_fp_unittest(
- frexpl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpl_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpl
-)
-
-add_fp_unittest(
- frexpf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpf16_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpf16
-)
-
-add_fp_unittest(
- frexpf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpf128_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpf128
-)
-
-add_fp_unittest(
- frexpbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- frexpbf16_test.cpp
- HDRS
- FrexpTest.h
- DEPENDS
- libc.src.math.frexpbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- fromfp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfp_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfp
-)
-
-add_fp_unittest(
- fromfpf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpf_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpf
-)
-
-add_fp_unittest(
- fromfpl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpl_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpl
-)
-
-add_fp_unittest(
- fromfpf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpf16_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpf16
-)
-
-add_fp_unittest(
- fromfpf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpf128_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpf128
-)
-
-add_fp_unittest(
- fromfpbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpbf16_test.cpp
- HDRS
- FromfpTest.h
- DEPENDS
- libc.src.math.fromfpbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- fromfpx_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpx_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpx
-)
-
-add_fp_unittest(
- fromfpxf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxf_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxf
-)
-
-add_fp_unittest(
- fromfpxl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxl_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxl
-)
-
-add_fp_unittest(
- fromfpxf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxf16_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxf16
-)
-
-add_fp_unittest(
- fromfpxf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxf128_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxf128
-)
-
-add_fp_unittest(
- fromfpxbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fromfpxbf16_test.cpp
- HDRS
- FromfpxTest.h
- DEPENDS
- libc.src.math.fromfpxbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-
-add_fp_unittest(
- ufromfp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfp_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfp
-)
-
-add_fp_unittest(
- ufromfpf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpf_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpf
-)
-
-add_fp_unittest(
- ufromfpl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpl_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpl
-)
-
-add_fp_unittest(
- ufromfpf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpf16_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpf16
-)
-
-add_fp_unittest(
- ufromfpf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpf128_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpf128
-)
-
-add_fp_unittest(
- ufromfpbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpbf16_test.cpp
- HDRS
- UfromfpTest.h
- DEPENDS
- libc.src.math.ufromfpbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- ufromfpx_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpx_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpx
-)
-
-add_fp_unittest(
- ufromfpxf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxf_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxf
-)
-
-add_fp_unittest(
- ufromfpxl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxl_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxl
-)
-
-add_fp_unittest(
- ufromfpxf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxf16_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxf16
-)
-
-add_fp_unittest(
- ufromfpxf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxf128_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxf128
-)
-
-add_fp_unittest(
- ufromfpxbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ufromfpxbf16_test.cpp
- HDRS
- UfromfpxTest.h
- DEPENDS
- libc.src.math.ufromfpxbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- ilogb_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogb_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogb
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbf_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbl_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbf16_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbf128_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ilogbbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ilogbbf16_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.ilogbbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- issignaling_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignaling_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignaling
-)
-
-add_fp_unittest(
- issignalingf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingf_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingf
-)
-
-add_fp_unittest(
- issignalingl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingl_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingl
-)
-
-add_fp_unittest(
- issignalingf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingf16_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingf16
-)
-
-add_fp_unittest(
- issignalingf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingf128_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingf128
-)
-
-add_fp_unittest(
- issignalingbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- issignalingbf16_test.cpp
- HDRS
- IsSignalingTest.h
- DEPENDS
- libc.src.math.issignalingbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- llogb_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogb_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogb
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbf_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbl_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbf16_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbf128_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- llogbbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- llogbbf16_test.cpp
- HDRS
- ILogbTest.h
- DEPENDS
- libc.src.math.llogbbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- ldexp_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexp_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexp
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpf_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpf
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpl_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpl
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpf16_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpf128_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- ldexpbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ldexpbf16_test.cpp
- HDRS
- LdExpTest.h
- DEPENDS
- libc.src.math.ldexpbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- logb_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logb_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logb
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbf_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbl_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbf16_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbf128_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- logbbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logbbf16_test.cpp
- HDRS
- LogbTest.h
- DEPENDS
- libc.src.math.logbbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.manipulation_functions
-)
-
-add_fp_unittest(
- modf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modf_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modff_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modff_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modff
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modfl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modfl_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modfl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modff16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modff16_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modff16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modff128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modff128_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modff128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- modfbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- modfbf16_test.cpp
- HDRS
- ModfTest.h
- DEPENDS
- libc.src.math.modfbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.nearest_integer_operations
-)
-
-add_fp_unittest(
- fdimf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdimf_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdim_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdim_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdim
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdiml_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdiml_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdiml
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdimf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdimf16_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdimf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdimf128_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fdimbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdimbf16_test.cpp
- HDRS
- FDimTest.h
- DEPENDS
- libc.src.math.fdimbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminf_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmin_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmin_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fmin
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminl_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminf128_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminf16_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminbf16_test.cpp
- HDRS
- FMinTest.h
- DEPENDS
- libc.src.math.fminbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxf_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmax_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmax_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmax
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxl_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxf128_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxf16_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaxbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaxbf16_test.cpp
- HDRS
- FMaxTest.h
- DEPENDS
- libc.src.math.fmaxbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximuml_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximuml_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximuml
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximumf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximumf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximumf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximumf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximumf128_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximumf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximum
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximumf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximumf_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximumf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numf_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_numf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximumbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximumbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximumbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_num_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_num_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_num
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numl_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_numl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numf16_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_numf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numf128_test.cpp
- HDRS
- FMaximumNumTest.h
- DEPENDS
- libc.src.math.fmaximum_numf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_numbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_numbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximum_numbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magf_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_magf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_mag
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magl_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_magl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magf16_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_magf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magf128_test.cpp
- HDRS
- FMaximumMagTest.h
- DEPENDS
- libc.src.math.fmaximum_magf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_magbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_magbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximum_magbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numf_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numf
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_num_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_num_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_num
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numl_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numl
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numf16_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numf16
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numf128_test.cpp
- HDRS
- FMaximumMagNumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numf128
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmaximum_mag_numbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaximum_mag_numbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fmaximum_mag_numbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimuml_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimuml_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimuml
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimumf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimumf16_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimumf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimumf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimumf128_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimumf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimum
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimumf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimumf_test.cpp
- HDRS
- FMinimumTest.h
- DEPENDS
- libc.src.math.fminimumf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimumbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimumbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fminimumbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numf_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_numf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_num_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_num_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_num
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numl_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_numl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numf16_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_numf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numf128_test.cpp
- HDRS
- FMinimumNumTest.h
- DEPENDS
- libc.src.math.fminimum_numf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_numbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_numf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fminimum_numf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magf_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_magf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_mag
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magl_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_magl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magf16_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_magf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magf128_test.cpp
- HDRS
- FMinimumMagTest.h
- DEPENDS
- libc.src.math.fminimum_magf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_magbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_magbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fminimum_magbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numf_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numf
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_num_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_num_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_num
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numl_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numl
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numf16_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numf128_test.cpp
- HDRS
- FMinimumMagNumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numf128
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fminimum_mag_numbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fminimum_mag_numbf16_test.cpp
- HDRS
- FMaximumTest.h
- DEPENDS
- libc.src.math.fminimum_mag_numbf16
- libc.src.__support.CPP.algorithm
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmul_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.fmul
-)
-
-add_fp_unittest(
- fmull_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.fmull
-)
-
-add_fp_unittest(
- sqrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf
-)
-
-add_fp_unittest(
- sqrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrt
-)
-
-add_fp_unittest(
- sqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtl
-)
-
-add_fp_unittest(
- rsqrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rsqrtf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.rsqrtf
-)
-
-add_fp_unittest(
- rsqrtf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- rsqrtf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.rsqrtf16
-)
-
-add_fp_unittest(
- sqrtf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtf16_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf16
-)
-
-add_fp_unittest(
- sqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtf128
-)
-
-add_fp_unittest(
- sqrtbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sqrtbf16_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.sqrtbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- generic_sqrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- generic_sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- generic_sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- generic_sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- generic_sqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- generic_sqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- # The dependency on sqrtf128 is used to disable the test when float128
- # support is not available.
- libc.src.math.sqrtf128
- libc.src.__support.FPUtil.generic.sqrt
- COMPILE_OPTIONS
- ${libc_opt_high_flag}
-)
-
-add_fp_unittest(
- remquof_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquof_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquof
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquof128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquof128_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquof128
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquo_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquo_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquo
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquol_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquol_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquol
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquof16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquof16_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquof16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- remquobf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- remquobf16_test.cpp
- HDRS
- RemQuoTest.h
- DEPENDS
- libc.src.math.remquobf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypotf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- hypotf_test.cpp
- HDRS
- HypotTest.h
- DEPENDS
- libc.src.math.hypotf
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.macros.properties.architectures
-)
-
-add_fp_unittest(
- hypotf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- hypotf16_test.cpp
- HDRS
- HypotTest.h
- DEPENDS
- libc.src.math.hypotf16
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- hypot_test
- SUITE
- libc-math-smoke-tests
- SRCS
- hypot_test.cpp
- HDRS
- HypotTest.h
- DEPENDS
- libc.src.math.hypot
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.macros.properties.architectures
-)
-
-add_fp_unittest(
- nanf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanf_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanf
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nan_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nan_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nan
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nanl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanl_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanl
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nanf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanf16_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanf16
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nanf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanf128_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanf128
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nanbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nanbf16_test.cpp
- DEPENDS
- libc.hdr.signal_macros
- libc.src.math.nanbf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- # FIXME: The nan tests currently have death tests, which aren't supported for
- # hermetic tests.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- nearbyint_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyint_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyint
-)
-
-add_fp_unittest(
- nearbyintf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintf_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintf
-)
-
-add_fp_unittest(
- nearbyintl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintl_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintl
-)
-
-add_fp_unittest(
- nearbyintf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintf16_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintf16
-)
-
-add_fp_unittest(
- nearbyintf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintf128_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintf128
-)
-
-add_fp_unittest(
- nearbyintbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nearbyintbf16_test.cpp
- HDRS
- NearbyIntTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nearbyintbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- nextafter_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafter_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafter
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterf_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterf
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterl_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterl
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterf16_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterf16
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterf128_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterf128
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextafterbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextafterbf16_test.cpp
- HDRS
- NextAfterTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nextafterbf16
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-# FIXME: These tests are currently spurious for the GPU.
-if(NOT LIBC_TARGET_OS_IS_GPU)
- add_fp_unittest(
- nexttoward_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttoward_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttoward
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
- )
-
- add_fp_unittest(
- nexttowardf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttowardf_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttowardf
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
- )
-endif()
-
-add_fp_unittest(
- nexttowardl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttowardl_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttowardl
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nexttowardf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttowardf16_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttowardf16
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nexttowardbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nexttowardbf16_test.cpp
- HDRS
- NextTowardTest.h
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.nexttowardbf16
- libc.src.__support.CPP.bit
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- nextdown_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdown_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdown
-)
-
-add_fp_unittest(
- nextdownf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownf_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownf
-)
-
-add_fp_unittest(
- nextdownl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownl_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownl
-)
-
-add_fp_unittest(
- nextdownf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownf16_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownf16
-)
-
-add_fp_unittest(
- nextdownf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownf128_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownf128
-)
-
-add_fp_unittest(
- nextdownbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextdownbf16_test.cpp
- HDRS
- NextDownTest.h
- DEPENDS
- libc.src.math.nextdownbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- nextup_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextup_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextup
-)
-
-add_fp_unittest(
- nextupf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupf_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupf
-)
-
-add_fp_unittest(
- nextupl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupl_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupl
-)
-
-add_fp_unittest(
- nextupf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupf16_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupf16
-)
-
-add_fp_unittest(
- nextupf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupf128_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupf128
-)
-
-add_fp_unittest(
- nextupbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- nextupbf16_test.cpp
- HDRS
- NextUpTest.h
- DEPENDS
- libc.src.math.nextupbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-# TODO(lntue): The current implementation of fputil::general::fma<float> is only
-# correctly rounded for the default rounding mode round-to-nearest tie-to-even.
-add_fp_unittest(
- fmaf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmaf
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- fmaf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmaf16_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmaf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- fmabf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmabf16_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fmabf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- fma_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.fma
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- expm1_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expm1_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.expm1
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expm1f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.expm1f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- expm1f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- expm1f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.expm1f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- log_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- logf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.logf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- logf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- logf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.logf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- log_bf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log_bf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.log_bf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- log2_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log2_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log2
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log2f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log2f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log2f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log2f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.log2f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- log10_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log10_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log10
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log10f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log10f_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log10f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log10f16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log10f16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.log10f16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- log1p_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log1p_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log1p
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- log1pf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- log1pf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.log1pf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- fmodf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodf_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodf
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmod_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmod_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmod
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmodl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodl_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodl
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmodf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodf16_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodf16
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmodf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodf128_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodf128
- libc.src.__support.FPUtil.fenv_impl
- # FIXME: Currently fails on the GPU build.
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- fmodbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fmodbf16_test.cpp
- HDRS
- FModTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fmodbf16
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fenv_impl
- UNIT_TEST_ONLY
-)
-
-add_fp_unittest(
- coshf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- coshf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.coshf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- coshf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- coshf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.coshf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- sinhf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sinhf
- libc.src.__support.CPP.array
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- sinhf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sinhf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.sinhf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- tanhf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.tanhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- tanhf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tanhf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.tanhf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- atanhf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atanhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.atanhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atanhf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atanhf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.atanhf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- atanpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- atanpif16_test.cpp
- DEPENDS
- libc.src.math.atanpif16
-)
-
-add_fp_unittest(
- asinhf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asinhf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinhf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- asinhf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asinhf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinhf16
-)
-
-add_fp_unittest(
- asinpif16_test
- NEED_MPFR
- SUITE
- libc-math-unittests
- SRCS
- asinpif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinpif16
-)
-
-add_fp_unittest(
- acoshf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acoshf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acoshf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- acoshf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acoshf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acoshf16
- libc.src.__support.FPUtil.cast
-)
-
-add_fp_unittest(
- asinf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asinf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- asin_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asin_test.cpp
- DEPENDS
- libc.src.math.asin
-)
-
-add_fp_unittest(
- asinf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- asinf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.asinf16
-)
-
-add_fp_unittest(
- acosf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acosf_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acosf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- acos_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acos_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.acos
-)
-
-add_fp_unittest(
- acosf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acosf16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acosf16
-)
-
-add_fp_unittest(
- acospif16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- acospif16_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.acospif16
-)
-
-add_fp_unittest(
- atanf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atanf_test.cpp
- DEPENDS
- libc.src.math.atanf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atan_test.cpp
- DEPENDS
- libc.src.math.atan
-)
-
-add_fp_unittest(
- atanf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atanf16_test.cpp
- DEPENDS
- libc.src.math.atanf16
-)
-
-add_fp_unittest(
- atan2f_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atan2f_test.cpp
- DEPENDS
- libc.src.math.atan2f
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- atan2_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atan2_test.cpp
- DEPENDS
- libc.src.math.atan2
-)
-
-add_fp_unittest(
- atan2f128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- atan2f128_test.cpp
- DEPENDS
- libc.src.math.atan2f128
-)
-
-add_fp_unittest(
- scalbln_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbln_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbln
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnf_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnf
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnl_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnl
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnf16_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnf16
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnf128_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnf128
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalblnbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalblnbf16_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalblnbf16
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbn_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbn_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbn
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnf_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnl_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnl
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnf16_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf16
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnf128_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnf128
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- scalbnbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- scalbnbf16_test.cpp
- HDRS
- ScalbnTest.h
- DEPENDS
- libc.src.math.scalbnbf16
- libc.src.__support.CPP.limits
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.fp_bits
- libc.src.__support.FPUtil.normal_float
-)
-
-add_fp_unittest(
- erff_test
- SUITE
- libc-math-smoke-tests
- SRCS
- erff_test.cpp
- DEPENDS
- libc.src.math.erff
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- pow_test
- SUITE
- libc-math-smoke-tests
- SRCS
- pow_test.cpp
- DEPENDS
- libc.hdr.fenv_macros
- libc.src.math.pow
-)
-
-add_fp_unittest(
- powf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- powf_test.cpp
- DEPENDS
- libc.src.math.powf
- libc.src.__support.FPUtil.fp_bits
-)
-
-add_fp_unittest(
- totalorder_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorder_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorder
-)
-
-add_fp_unittest(
- totalorderf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderf_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderf
-)
-
-add_fp_unittest(
- totalorderl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderl_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderl
-)
-
-add_fp_unittest(
- totalorderf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderf16_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderf16
-)
-
-add_fp_unittest(
- totalorderf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderf128_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderf128
-)
-
-add_fp_unittest(
- totalorderbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalorderbf16_test.cpp
- HDRS
- TotalOrderTest.h
- DEPENDS
- libc.src.math.totalorderbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- totalordermag_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermag_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermag
-)
-
-add_fp_unittest(
- totalordermagf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagf_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagf
-)
-
-add_fp_unittest(
- totalordermagl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagl_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagl
-)
-
-add_fp_unittest(
- totalordermagf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagf16_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagf16
-)
-
-add_fp_unittest(
- totalordermagf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagf128_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagf128
-)
-
-add_fp_unittest(
- totalordermagbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- totalordermagbf16_test.cpp
- HDRS
- TotalOrderMagTest.h
- DEPENDS
- libc.src.math.totalordermagbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- getpayload_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayload_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayload
-)
-
-add_fp_unittest(
- getpayloadf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadf_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadf
-)
-
-add_fp_unittest(
- getpayloadl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadl_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadl
-)
-
-add_fp_unittest(
- getpayloadf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadf16_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadf16
-)
-
-add_fp_unittest(
- getpayloadf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadf128_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadf128
-)
-
-add_fp_unittest(
- getpayloadbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- getpayloadbf16_test.cpp
- HDRS
- GetPayloadTest.h
- DEPENDS
- libc.src.math.getpayloadbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- setpayload_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayload_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayload
-)
-
-add_fp_unittest(
- setpayloadf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadf_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadf
-)
-
-add_fp_unittest(
- setpayloadl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadl_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadl
-)
-
-add_fp_unittest(
- setpayloadf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadf16_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadf16
-)
-
-add_fp_unittest(
- setpayloadf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadf128_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadf128
-)
-
-add_fp_unittest(
- setpayloadbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadbf16_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- setpayloadsig_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsig_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsig
-)
-
-add_fp_unittest(
- setpayloadsigf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigf_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsigf
-)
-
-add_fp_unittest(
- setpayloadsigl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigl_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsigl
-)
-
-add_fp_unittest(
- setpayloadsigf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigf16_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsigf16
-)
-
-add_fp_unittest(
- setpayloadsigf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigf128_test.cpp
- HDRS
- SetPayloadSigTest.h
- DEPENDS
- libc.src.math.setpayloadsigf128
-)
-
-add_fp_unittest(
- setpayloadsigbf16_test
- SUITE
- libc-math-smoke-tests
- SRCS
- setpayloadsigbf16_test.cpp
- HDRS
- SetPayloadTest.h
- DEPENDS
- libc.src.math.setpayloadsigbf16
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- f16add_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16add
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16addf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16addf_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16addf
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16addl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16addl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16addl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16addf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16addf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16addf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16sub_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16sub
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16subf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16subf_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16subf
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16subl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16subl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16subl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16subf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16subf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16subf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- f16div_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16div
-)
-
-add_fp_unittest(
- f16divf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16divf_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16divf
-)
-
-add_fp_unittest(
- f16divl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16divl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16divl
-)
-
-add_fp_unittest(
- f16divf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16divf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.f16divf128
-)
-
-add_fp_unittest(
- f16fma_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fma
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- f16fmaf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmaf
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- f16fmal_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16fmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmal
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- f16fmaf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16fmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.f16fmaf128
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- f16sqrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrt
-)
-
-add_fp_unittest(
- f16sqrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sqrtf_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtf
-)
-
-add_fp_unittest(
- f16sqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtl
-)
-
-add_fp_unittest(
- f16sqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16sqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.f16sqrtf128
-)
-
-add_fp_unittest(
- fdiv_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdiv_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fdiv
-)
-
-add_fp_unittest(
- fdivl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdivl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fdivl
-)
-
-add_fp_unittest(
- fdivf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fdivf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fdivf128
-)
-
-add_fp_unittest(
- ffma_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ffma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffma
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- ffmal_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ffmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffmal
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- ffmaf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ffmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.src.math.ffmaf128
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- fsqrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsqrt_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrt
-)
-
-
-add_fp_unittest(
- fsqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrtl
-)
-
-add_fp_unittest(
- fsqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.fsqrtf128
-)
-
-add_fp_unittest(
- fsub_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fsub
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- fsubl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsubl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fsubl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- fsubf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- fsubf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.fsubf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- dsqrtl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dsqrtl_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.dsqrtl
-)
-
-add_fp_unittest(
- dsqrtf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dsqrtf128_test.cpp
- HDRS
- SqrtTest.h
- DEPENDS
- libc.src.math.dsqrtf128
-)
-
-add_fp_unittest(
- sin_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sin_test.cpp
- DEPENDS
- libc.src.math.sin
-)
-
-add_fp_unittest(
- cos_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cos_test.cpp
- DEPENDS
- libc.src.math.cos
-)
-
-add_fp_unittest(
- sincos_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sincos_test.cpp
- DEPENDS
- libc.hdr.errno_macros
- libc.src.math.sincos
-)
-
-add_fp_unittest(
- tan_test
- SUITE
- libc-math-smoke-tests
- SRCS
- tan_test.cpp
- DEPENDS
- libc.src.math.tan
-)
-
-add_fp_unittest(
- cbrtf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cbrtf_test.cpp
- DEPENDS
- libc.src.math.cbrtf
-)
-
-add_fp_unittest(
- cbrt_test
- SUITE
- libc-math-smoke-tests
- SRCS
- cbrt_test.cpp
- DEPENDS
- libc.src.math.cbrt
-)
-
-add_fp_unittest(
- dmull_test
- SUITE
- libc-math-smoke-tests
- SRCS
- dmull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.dmull
-)
-
-add_fp_unittest(
- f16mul_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.f16mul
-)
-
-add_fp_unittest(
- f16mulf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16mulf_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.f16mulf
-)
-
-add_fp_unittest(
- f16mull_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16mull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.f16mull
-)
-
-add_fp_unittest(
- f16mulf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- f16mulf128_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.basic_operations
- libc.src.math.f16mulf128
-)
-
-add_fp_unittest(
- daddl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- daddl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.daddl
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- daddf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- daddf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.daddf128
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- ddivl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ddivl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.ddivl
-)
-
-add_fp_unittest(
- ddivf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- ddivf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.math.ddivf128
-)
-
-add_fp_unittest(
- bfloat16_add_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bfloat16_add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.os
- libc.src.__support.macros.properties.types
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
-)
-
-add_fp_unittest(
- bfloat16_div_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bfloat16_div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.src.__support.FPUtil.bfloat16
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
-)
-
-add_fp_unittest(
- bfloat16_mul_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bfloat16_mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.src.__support.FPUtil.basic_operations
- libc.src.__support.FPUtil.bfloat16
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
-)
-
-add_fp_unittest(
- bfloat16_sub_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bfloat16_sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.os
- libc.src.__support.macros.properties.types
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
-)
-
-add_fp_unittest(
- add_same_type_test
- SUITE
- libc-math-smoke-tests
- SRCS
- add_same_type_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.os
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- sub_same_type_test
- SUITE
- libc-math-smoke-tests
- SRCS
- sub_same_type_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.__support.FPUtil.generic.add_sub
- libc.src.__support.macros.properties.os
- libc.src.__support.macros.properties.types
-)
-
-add_fp_unittest(
- bf16add_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16add_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16add
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16addf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16addf_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16addf
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16addl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16addl_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16addl
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16addf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16addf128_test.cpp
- HDRS
- AddTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16addf128
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16fma_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16fma_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16fma
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmaf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16fmaf_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16fmaf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmal_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16fmal_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16fmal
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16fmaf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16fmaf128_test.cpp
- HDRS
- FmaTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16fmaf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16div_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16div_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16div
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16divf_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16divf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16divl_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16divl
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16divf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16divf128_test.cpp
- HDRS
- DivTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16divf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mul_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16mul_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16mul
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mulf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16mulf_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16mulf
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mull_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16mull_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16mull
- libc.src.__support.FPUtil.bfloat16
-)
-
-add_fp_unittest(
- bf16mulf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16mulf128_test.cpp
- HDRS
- MulTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16mulf128
- libc.src.__support.FPUtil.bfloat16
-)
-
-
-add_fp_unittest(
- bf16sub_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16sub_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16sub
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16subf_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16subf_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16subf
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16subl_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16subl_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16subl
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
-
-add_fp_unittest(
- bf16subf128_test
- SUITE
- libc-math-smoke-tests
- SRCS
- bf16subf128_test.cpp
- HDRS
- SubTest.h
- DEPENDS
- libc.hdr.errno_macros
- libc.hdr.fenv_macros
- libc.src.math.bf16subf128
- libc.src.__support.FPUtil.bfloat16
- libc.src.__support.macros.properties.os
-)
+add_custom_target(libc-math-smoke-tests)
+add_dependencies(libc-math-unittests libc-math-smoke-tests)
+
+add_fp_unittest(
+ cosf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cosf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cosf
+)
+
+add_fp_unittest(
+ cosf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cosf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cosf16
+)
+
+add_fp_unittest(
+ cospif_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cospif_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cospif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ cospif16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cospif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.cospif16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ sinf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ sinpif_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinpif_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinpif
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinpif16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinpif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinpif16
+)
+
+add_fp_unittest(
+ sincosf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sincosf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sincosf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanf16
+)
+
+add_fp_unittest(
+ tanpif_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanpif_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanpif
+)
+
+add_fp_unittest(
+ tanpif16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanpif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanpif16
+)
+
+add_fp_unittest(
+ fabs_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabs_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabs
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsf_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsl_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsf16_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsf16
+)
+
+add_fp_unittest(
+ fabsf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsf128_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.math.fabsf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fabsbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fabsbf16_test.cpp
+ HDRS
+ FAbsTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.math.fabsbf16
+)
+
+add_fp_unittest(
+ fadd_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fadd_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fadd
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ faddl_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ faddl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.faddl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ faddf128_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ faddf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.faddf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ trunc_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ trunc_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.trunc
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncf_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncl_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncf16_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf16
+)
+
+add_fp_unittest(
+ truncf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncf128_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ truncbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncbf16_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.src.math.truncbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ canonicalize_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalize_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalize
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizef_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizef_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizef
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizef16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizef16_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizef16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizef128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizef128_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizef128
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizel_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizel_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizel
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ canonicalizebf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ canonicalizebf16_test.cpp
+ HDRS
+ CanonicalizeTest.h
+ DEPENDS
+ libc.src.math.canonicalizebf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.integer_literals
+)
+
+add_fp_unittest(
+ iscanonical_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonical_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonical
+)
+
+add_fp_unittest(
+ iscanonicalf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicalf_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicalf
+)
+
+add_fp_unittest(
+ iscanonicall_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicall_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicall
+)
+
+add_fp_unittest(
+ iscanonicalf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicalf16_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicalf16
+)
+
+add_fp_unittest(
+ iscanonicalf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicalf128_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicalf128
+)
+
+add_fp_unittest(
+ iscanonicalbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ iscanonicalbf16_test.cpp
+ HDRS
+ IsCanonicalTest.h
+ DEPENDS
+ libc.src.math.iscanonicalbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ ceil_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceil_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceil
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceilf_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceill_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceill_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceill
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceilf16_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf16
+)
+
+add_fp_unittest(
+ ceilf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceilf128_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ ceilbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceilbf16_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.src.math.ceilbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ dfmal_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dfmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.dfmal
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ dfmaf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dfmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.dfmaf128
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ dsubl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dsubl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.dsubl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ dsubf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dsubf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.dsubf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ floor_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floor_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floor
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorf_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorl_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorf16_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf16
+)
+
+add_fp_unittest(
+ floorf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorf128_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ floorbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorbf16_test.cpp
+ HDRS
+ FloorTest.h
+ DEPENDS
+ libc.src.math.floorbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ round_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ round_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.round
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundf_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundl_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundf16_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf16
+)
+
+add_fp_unittest(
+ roundf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundf128_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundbf16_test.cpp
+ HDRS
+ RoundTest.h
+ DEPENDS
+ libc.src.math.roundbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ roundeven_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundeven_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundeven
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenf_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenl_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenf16_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf16
+)
+
+add_fp_unittest(
+ roundevenf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenf128_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenf128
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ roundevenbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ roundevenbf16_test.cpp
+ HDRS
+ RoundEvenTest.h
+ DEPENDS
+ libc.src.math.roundevenbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ lround_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lround_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lround
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundf128_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lroundbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lroundbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lroundbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llround_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llround_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llround
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundf128_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llroundbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llroundbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llroundbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rint_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rint_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rint
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintf_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintf
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintl_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintl
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintf16_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintf16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintf128_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintf128
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ rintbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rintbf16_test.cpp
+ HDRS
+ RIntTest.h
+ DEPENDS
+ libc.src.math.rintbf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrint_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrint_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintf128_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ lrintbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ lrintbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.lrintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrint_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrint_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrint
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintf_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintl_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintf128_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ llrintbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llrintbf16_test.cpp
+ HDRS
+ RoundToIntegerTest.h
+ DEPENDS
+ libc.src.errno.errno
+ libc.src.math.llrintbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.expf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.expf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp2_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp2f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.exp2f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp2m1f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2m1f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp2m1f
+)
+
+add_fp_unittest(
+ exp2m1f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp2m1f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.exp2m1f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp10_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp10
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp10f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp10f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ exp10f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.exp10f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp10m1f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10m1f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.exp10m1f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ exp10m1f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ exp10m1f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.exp10m1f
+)
+
+add_fp_unittest(
+ copysign_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysign_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysign
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignf_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignl_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignf16_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignf128_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ copysignbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ copysignbf16_test.cpp
+ HDRS
+ CopySignTest.h
+ DEPENDS
+ libc.src.math.copysignbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ frexp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexp_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexp
+)
+
+add_fp_unittest(
+ frexpf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpf_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpf
+)
+
+add_fp_unittest(
+ frexpl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpl_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpl
+)
+
+add_fp_unittest(
+ frexpf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpf16_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpf16
+)
+
+add_fp_unittest(
+ frexpf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpf128_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpf128
+)
+
+add_fp_unittest(
+ frexpbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ frexpbf16_test.cpp
+ HDRS
+ FrexpTest.h
+ DEPENDS
+ libc.src.math.frexpbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ fromfp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfp_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfp
+)
+
+add_fp_unittest(
+ fromfpf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpf_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpf
+)
+
+add_fp_unittest(
+ fromfpl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpl_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpl
+)
+
+add_fp_unittest(
+ fromfpf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpf16_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpf16
+)
+
+add_fp_unittest(
+ fromfpf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpf128_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpf128
+)
+
+add_fp_unittest(
+ fromfpbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpbf16_test.cpp
+ HDRS
+ FromfpTest.h
+ DEPENDS
+ libc.src.math.fromfpbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ fromfpx_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpx_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpx
+)
+
+add_fp_unittest(
+ fromfpxf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxf_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxf
+)
+
+add_fp_unittest(
+ fromfpxl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxl_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxl
+)
+
+add_fp_unittest(
+ fromfpxf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxf16_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxf16
+)
+
+add_fp_unittest(
+ fromfpxf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxf128_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxf128
+)
+
+add_fp_unittest(
+ fromfpxbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fromfpxbf16_test.cpp
+ HDRS
+ FromfpxTest.h
+ DEPENDS
+ libc.src.math.fromfpxbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+
+add_fp_unittest(
+ ufromfp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfp_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfp
+)
+
+add_fp_unittest(
+ ufromfpf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpf_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpf
+)
+
+add_fp_unittest(
+ ufromfpl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpl_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpl
+)
+
+add_fp_unittest(
+ ufromfpf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpf16_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpf16
+)
+
+add_fp_unittest(
+ ufromfpf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpf128_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpf128
+)
+
+add_fp_unittest(
+ ufromfpbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpbf16_test.cpp
+ HDRS
+ UfromfpTest.h
+ DEPENDS
+ libc.src.math.ufromfpbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ ufromfpx_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpx_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpx
+)
+
+add_fp_unittest(
+ ufromfpxf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxf_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxf
+)
+
+add_fp_unittest(
+ ufromfpxl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxl_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxl
+)
+
+add_fp_unittest(
+ ufromfpxf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxf16_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxf16
+)
+
+add_fp_unittest(
+ ufromfpxf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxf128_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxf128
+)
+
+add_fp_unittest(
+ ufromfpxbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ufromfpxbf16_test.cpp
+ HDRS
+ UfromfpxTest.h
+ DEPENDS
+ libc.src.math.ufromfpxbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ ilogb_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogb_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogb
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbf_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbl_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbf16_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbf128_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ilogbbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ilogbbf16_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.ilogbbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ issignaling_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignaling_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignaling
+)
+
+add_fp_unittest(
+ issignalingf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingf_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingf
+)
+
+add_fp_unittest(
+ issignalingl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingl_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingl
+)
+
+add_fp_unittest(
+ issignalingf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingf16_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingf16
+)
+
+add_fp_unittest(
+ issignalingf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingf128_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingf128
+)
+
+add_fp_unittest(
+ issignalingbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ issignalingbf16_test.cpp
+ HDRS
+ IsSignalingTest.h
+ DEPENDS
+ libc.src.math.issignalingbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ llogb_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogb_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogb
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbf_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbl_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbf16_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbf128_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ llogbbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ llogbbf16_test.cpp
+ HDRS
+ ILogbTest.h
+ DEPENDS
+ libc.src.math.llogbbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ ldexp_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexp_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexp
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpf_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpl_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpf16_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpf128_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ ldexpbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ldexpbf16_test.cpp
+ HDRS
+ LdExpTest.h
+ DEPENDS
+ libc.src.math.ldexpbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ logb_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logb_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logb
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbf_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbl_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbf16_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbf128_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ logbbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logbbf16_test.cpp
+ HDRS
+ LogbTest.h
+ DEPENDS
+ libc.src.math.logbbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.manipulation_functions
+)
+
+add_fp_unittest(
+ modf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modf_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modff_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modff_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modff
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modfl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modfl_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modfl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modff16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modff16_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modff16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modff128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modff128_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modff128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ modfbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ modfbf16_test.cpp
+ HDRS
+ ModfTest.h
+ DEPENDS
+ libc.src.math.modfbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_fp_unittest(
+ fdimf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdimf_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdim_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdim_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdim
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdiml_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdiml_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdiml
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdimf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdimf16_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdimf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdimf128_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fdimbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdimbf16_test.cpp
+ HDRS
+ FDimTest.h
+ DEPENDS
+ libc.src.math.fdimbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminf_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmin_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmin_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fmin
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminl_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminf128_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminf16_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminbf16_test.cpp
+ HDRS
+ FMinTest.h
+ DEPENDS
+ libc.src.math.fminbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxf_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmax_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmax_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmax
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxl_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxf128_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxf16_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaxbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaxbf16_test.cpp
+ HDRS
+ FMaxTest.h
+ DEPENDS
+ libc.src.math.fmaxbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximuml_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximuml_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximuml
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximumf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximumf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximumf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximumf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximumf128_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximumf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximum
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximumf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximumf_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximumf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numf_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximumbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximumbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximumbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_num_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_num_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_num
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numl_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numf16_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numf128_test.cpp
+ HDRS
+ FMaximumNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_numbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_numbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_numbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magf_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magl_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magf16_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magf128_test.cpp
+ HDRS
+ FMaximumMagTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_magbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_magbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_magbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numf_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numf
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_num_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_num_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_num
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numl_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numl
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numf16_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numf16
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numf128_test.cpp
+ HDRS
+ FMaximumMagNumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numf128
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmaximum_mag_numbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaximum_mag_numbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fmaximum_mag_numbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimuml_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimuml_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimuml
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimumf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimumf16_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimumf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimumf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimumf128_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimumf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimum
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimumf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimumf_test.cpp
+ HDRS
+ FMinimumTest.h
+ DEPENDS
+ libc.src.math.fminimumf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimumbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimumbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fminimumbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numf_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_num_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_num_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_num
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numl_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numf16_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numf128_test.cpp
+ HDRS
+ FMinimumNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_numbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_numf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fminimum_numf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magf_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_magf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magl_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_magl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magf16_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_magf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magf128_test.cpp
+ HDRS
+ FMinimumMagTest.h
+ DEPENDS
+ libc.src.math.fminimum_magf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_magbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_magbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fminimum_magbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numf_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numf
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_num_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_num_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_num
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numl_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numl
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numf16_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numf128_test.cpp
+ HDRS
+ FMinimumMagNumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numf128
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fminimum_mag_numbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fminimum_mag_numbf16_test.cpp
+ HDRS
+ FMaximumTest.h
+ DEPENDS
+ libc.src.math.fminimum_mag_numbf16
+ libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmul_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.fmul
+)
+
+add_fp_unittest(
+ fmull_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.fmull
+)
+
+add_fp_unittest(
+ sqrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf
+)
+
+add_fp_unittest(
+ sqrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrt
+)
+
+add_fp_unittest(
+ sqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtl
+)
+
+add_fp_unittest(
+ rsqrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rsqrtf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.rsqrtf
+)
+
+add_fp_unittest(
+ rsqrtf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ rsqrtf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.rsqrtf16
+)
+
+add_fp_unittest(
+ sqrtf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtf16_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf16
+)
+
+add_fp_unittest(
+ sqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtf128
+)
+
+add_fp_unittest(
+ sqrtbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sqrtbf16_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.sqrtbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ generic_sqrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ generic_sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ generic_sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ generic_sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ generic_sqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ generic_sqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ # The dependency on sqrtf128 is used to disable the test when float128
+ # support is not available.
+ libc.src.math.sqrtf128
+ libc.src.__support.FPUtil.generic.sqrt
+ COMPILE_OPTIONS
+ ${libc_opt_high_flag}
+)
+
+add_fp_unittest(
+ remquof_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquof_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquof
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquof128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquof128_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquof128
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquo_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquo_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquo
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquol_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquol_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquol
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquof16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquof16_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquof16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ remquobf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ remquobf16_test.cpp
+ HDRS
+ RemQuoTest.h
+ DEPENDS
+ libc.src.math.remquobf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypotf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ hypotf_test.cpp
+ HDRS
+ HypotTest.h
+ DEPENDS
+ libc.src.math.hypotf
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.macros.properties.architectures
+)
+
+add_fp_unittest(
+ hypotf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ hypotf16_test.cpp
+ HDRS
+ HypotTest.h
+ DEPENDS
+ libc.src.math.hypotf16
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ hypot_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ hypot_test.cpp
+ HDRS
+ HypotTest.h
+ DEPENDS
+ libc.src.math.hypot
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.macros.properties.architectures
+)
+
+add_fp_unittest(
+ nanf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanf_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanf
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nan_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nan_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nan
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nanl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanl_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanl
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nanf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanf16_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanf16
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nanf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanf128_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanf128
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nanbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nanbf16_test.cpp
+ DEPENDS
+ libc.hdr.signal_macros
+ libc.src.math.nanbf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: The nan tests currently have death tests, which aren't supported for
+ # hermetic tests.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ nearbyint_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyint_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyint
+)
+
+add_fp_unittest(
+ nearbyintf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintf_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintf
+)
+
+add_fp_unittest(
+ nearbyintl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintl_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintl
+)
+
+add_fp_unittest(
+ nearbyintf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintf16_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintf16
+)
+
+add_fp_unittest(
+ nearbyintf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintf128_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintf128
+)
+
+add_fp_unittest(
+ nearbyintbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nearbyintbf16_test.cpp
+ HDRS
+ NearbyIntTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nearbyintbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ nextafter_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafter_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafter
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterf_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterf
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterl_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterl
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterf16_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterf16
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterf128_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterf128
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextafterbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextafterbf16_test.cpp
+ HDRS
+ NextAfterTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nextafterbf16
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+# FIXME: These tests are currently spurious for the GPU.
+if(NOT LIBC_TARGET_OS_IS_GPU)
+ add_fp_unittest(
+ nexttoward_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttoward_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttoward
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+ )
+
+ add_fp_unittest(
+ nexttowardf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttowardf_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttowardf
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+ )
+endif()
+
+add_fp_unittest(
+ nexttowardl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttowardl_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttowardl
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nexttowardf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttowardf16_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttowardf16
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nexttowardbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nexttowardbf16_test.cpp
+ HDRS
+ NextTowardTest.h
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.nexttowardbf16
+ libc.src.__support.CPP.bit
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ nextdown_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdown_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdown
+)
+
+add_fp_unittest(
+ nextdownf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownf_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownf
+)
+
+add_fp_unittest(
+ nextdownl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownl_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownl
+)
+
+add_fp_unittest(
+ nextdownf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownf16_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownf16
+)
+
+add_fp_unittest(
+ nextdownf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownf128_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownf128
+)
+
+add_fp_unittest(
+ nextdownbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextdownbf16_test.cpp
+ HDRS
+ NextDownTest.h
+ DEPENDS
+ libc.src.math.nextdownbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ nextup_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextup_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextup
+)
+
+add_fp_unittest(
+ nextupf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupf_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupf
+)
+
+add_fp_unittest(
+ nextupl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupl_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupl
+)
+
+add_fp_unittest(
+ nextupf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupf16_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupf16
+)
+
+add_fp_unittest(
+ nextupf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupf128_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupf128
+)
+
+add_fp_unittest(
+ nextupbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ nextupbf16_test.cpp
+ HDRS
+ NextUpTest.h
+ DEPENDS
+ libc.src.math.nextupbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+# TODO(lntue): The current implementation of fputil::general::fma<float> is only
+# correctly rounded for the default rounding mode round-to-nearest tie-to-even.
+add_fp_unittest(
+ fmaf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmaf
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ fmaf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmaf16_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmaf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ fmabf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmabf16_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fmabf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ fma_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.fma
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ expm1_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expm1_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.expm1
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expm1f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.expm1f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ expm1f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ expm1f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.expm1f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ log_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ logf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.logf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ logf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ logf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.logf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ log_bf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log_bf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.log_bf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ log2_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log2_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log2
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log2f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log2f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log2f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log2f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.log2f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ log10_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log10_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log10
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log10f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log10f_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log10f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log10f16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log10f16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.log10f16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ log1p_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log1p_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log1p
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ log1pf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ log1pf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.log1pf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ fmodf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodf_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodf
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmod_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmod_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmod
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmodl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodl_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodl
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmodf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodf16_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodf16
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmodf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodf128_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodf128
+ libc.src.__support.FPUtil.fenv_impl
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ fmodbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fmodbf16_test.cpp
+ HDRS
+ FModTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fmodbf16
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fenv_impl
+ UNIT_TEST_ONLY
+)
+
+add_fp_unittest(
+ coshf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ coshf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.coshf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ coshf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ coshf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.coshf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ sinhf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sinhf
+ libc.src.__support.CPP.array
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ sinhf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sinhf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.sinhf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ tanhf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.tanhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ tanhf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tanhf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.tanhf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ atanhf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atanhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.atanhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atanhf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atanhf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.atanhf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ atanpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ atanpif16_test.cpp
+ DEPENDS
+ libc.src.math.atanpif16
+)
+
+add_fp_unittest(
+ asinhf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asinhf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinhf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ asinhf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asinhf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinhf16
+)
+
+add_fp_unittest(
+ asinpif16_test
+ NEED_MPFR
+ SUITE
+ libc-math-unittests
+ SRCS
+ asinpif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinpif16
+)
+
+add_fp_unittest(
+ acoshf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acoshf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acoshf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ acoshf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acoshf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acoshf16
+ libc.src.__support.FPUtil.cast
+)
+
+add_fp_unittest(
+ asinf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asinf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ asin_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asin_test.cpp
+ DEPENDS
+ libc.src.math.asin
+)
+
+add_fp_unittest(
+ asinf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ asinf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.asinf16
+)
+
+add_fp_unittest(
+ acosf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acosf_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acosf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ acos_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acos_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.acos
+)
+
+add_fp_unittest(
+ acosf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acosf16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acosf16
+)
+
+add_fp_unittest(
+ acospif16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ acospif16_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.acospif16
+)
+
+add_fp_unittest(
+ atanf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atanf_test.cpp
+ DEPENDS
+ libc.src.math.atanf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atan_test.cpp
+ DEPENDS
+ libc.src.math.atan
+)
+
+add_fp_unittest(
+ atanf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atanf16_test.cpp
+ DEPENDS
+ libc.src.math.atanf16
+)
+
+add_fp_unittest(
+ atan2f_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atan2f_test.cpp
+ DEPENDS
+ libc.src.math.atan2f
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ atan2_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atan2_test.cpp
+ DEPENDS
+ libc.src.math.atan2
+)
+
+add_fp_unittest(
+ atan2f128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ atan2f128_test.cpp
+ DEPENDS
+ libc.src.math.atan2f128
+)
+
+add_fp_unittest(
+ scalbln_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbln_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbln
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnf_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnf
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnl_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnl
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnf16_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnf16
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnf128_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnf128
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalblnbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalblnbf16_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalblnbf16
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbn_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbn_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbn
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnf_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnl_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnl
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnf16_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf16
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnf128_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnf128
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ scalbnbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ scalbnbf16_test.cpp
+ HDRS
+ ScalbnTest.h
+ DEPENDS
+ libc.src.math.scalbnbf16
+ libc.src.__support.CPP.limits
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.fp_bits
+ libc.src.__support.FPUtil.normal_float
+)
+
+add_fp_unittest(
+ erff_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ erff_test.cpp
+ DEPENDS
+ libc.src.math.erff
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ pow_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ pow_test.cpp
+ DEPENDS
+ libc.hdr.fenv_macros
+ libc.src.math.pow
+)
+
+add_fp_unittest(
+ powf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ powf_test.cpp
+ DEPENDS
+ libc.src.math.powf
+ libc.src.__support.FPUtil.fp_bits
+)
+
+add_fp_unittest(
+ totalorder_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorder_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorder
+)
+
+add_fp_unittest(
+ totalorderf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderf_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderf
+)
+
+add_fp_unittest(
+ totalorderl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderl_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderl
+)
+
+add_fp_unittest(
+ totalorderf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderf16_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderf16
+)
+
+add_fp_unittest(
+ totalorderf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderf128_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderf128
+)
+
+add_fp_unittest(
+ totalorderbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalorderbf16_test.cpp
+ HDRS
+ TotalOrderTest.h
+ DEPENDS
+ libc.src.math.totalorderbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ totalordermag_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermag_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermag
+)
+
+add_fp_unittest(
+ totalordermagf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagf_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagf
+)
+
+add_fp_unittest(
+ totalordermagl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagl_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagl
+)
+
+add_fp_unittest(
+ totalordermagf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagf16_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagf16
+)
+
+add_fp_unittest(
+ totalordermagf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagf128_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagf128
+)
+
+add_fp_unittest(
+ totalordermagbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ totalordermagbf16_test.cpp
+ HDRS
+ TotalOrderMagTest.h
+ DEPENDS
+ libc.src.math.totalordermagbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ getpayload_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayload_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayload
+)
+
+add_fp_unittest(
+ getpayloadf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadf_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadf
+)
+
+add_fp_unittest(
+ getpayloadl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadl_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadl
+)
+
+add_fp_unittest(
+ getpayloadf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadf16_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadf16
+)
+
+add_fp_unittest(
+ getpayloadf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadf128_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadf128
+)
+
+add_fp_unittest(
+ getpayloadbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ getpayloadbf16_test.cpp
+ HDRS
+ GetPayloadTest.h
+ DEPENDS
+ libc.src.math.getpayloadbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ setpayload_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayload_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayload
+)
+
+add_fp_unittest(
+ setpayloadf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadf_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadf
+)
+
+add_fp_unittest(
+ setpayloadl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadl_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadl
+)
+
+add_fp_unittest(
+ setpayloadf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadf16_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadf16
+)
+
+add_fp_unittest(
+ setpayloadf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadf128_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadf128
+)
+
+add_fp_unittest(
+ setpayloadbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadbf16_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ setpayloadsig_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsig_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsig
+)
+
+add_fp_unittest(
+ setpayloadsigf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigf_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigf
+)
+
+add_fp_unittest(
+ setpayloadsigl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigl_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigl
+)
+
+add_fp_unittest(
+ setpayloadsigf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigf16_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigf16
+)
+
+add_fp_unittest(
+ setpayloadsigf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigf128_test.cpp
+ HDRS
+ SetPayloadSigTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigf128
+)
+
+add_fp_unittest(
+ setpayloadsigbf16_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ setpayloadsigbf16_test.cpp
+ HDRS
+ SetPayloadTest.h
+ DEPENDS
+ libc.src.math.setpayloadsigbf16
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ f16add_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16add
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16addf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16addf_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16addf
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16addl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16addl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16addl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16addf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16addf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16addf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16sub_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16sub
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16subf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16subf_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16subf
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16subl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16subl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16subl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16subf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16subf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16subf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ f16div_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16div
+)
+
+add_fp_unittest(
+ f16divf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16divf_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16divf
+)
+
+add_fp_unittest(
+ f16divl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16divl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16divl
+)
+
+add_fp_unittest(
+ f16divf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16divf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.f16divf128
+)
+
+add_fp_unittest(
+ f16fma_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fma
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ f16fmaf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmaf
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ f16fmal_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16fmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmal
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ f16fmaf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16fmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.f16fmaf128
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ f16sqrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrt
+)
+
+add_fp_unittest(
+ f16sqrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sqrtf_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtf
+)
+
+add_fp_unittest(
+ f16sqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtl
+)
+
+add_fp_unittest(
+ f16sqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16sqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.f16sqrtf128
+)
+
+add_fp_unittest(
+ fdiv_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdiv_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fdiv
+)
+
+add_fp_unittest(
+ fdivl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdivl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fdivl
+)
+
+add_fp_unittest(
+ fdivf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fdivf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fdivf128
+)
+
+add_fp_unittest(
+ ffma_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ffma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffma
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ ffmal_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ffmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffmal
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ ffmaf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ffmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.src.math.ffmaf128
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ fsqrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsqrt_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrt
+)
+
+
+add_fp_unittest(
+ fsqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrtl
+)
+
+add_fp_unittest(
+ fsqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.fsqrtf128
+)
+
+add_fp_unittest(
+ fsub_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fsub
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ fsubl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsubl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fsubl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ fsubf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ fsubf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.fsubf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ dsqrtl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dsqrtl_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.dsqrtl
+)
+
+add_fp_unittest(
+ dsqrtf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dsqrtf128_test.cpp
+ HDRS
+ SqrtTest.h
+ DEPENDS
+ libc.src.math.dsqrtf128
+)
+
+add_fp_unittest(
+ sin_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sin_test.cpp
+ DEPENDS
+ libc.src.math.sin
+)
+
+add_fp_unittest(
+ cos_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cos_test.cpp
+ DEPENDS
+ libc.src.math.cos
+)
+
+add_fp_unittest(
+ sincos_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sincos_test.cpp
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.src.math.sincos
+)
+
+add_fp_unittest(
+ tan_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ tan_test.cpp
+ DEPENDS
+ libc.src.math.tan
+)
+
+add_fp_unittest(
+ cbrtf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cbrtf_test.cpp
+ DEPENDS
+ libc.src.math.cbrtf
+)
+
+add_fp_unittest(
+ cbrt_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ cbrt_test.cpp
+ DEPENDS
+ libc.src.math.cbrt
+)
+
+add_fp_unittest(
+ dmull_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ dmull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.dmull
+)
+
+add_fp_unittest(
+ f16mul_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.f16mul
+)
+
+add_fp_unittest(
+ f16mulf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16mulf_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.f16mulf
+)
+
+add_fp_unittest(
+ f16mull_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16mull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.f16mull
+)
+
+add_fp_unittest(
+ f16mulf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ f16mulf128_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.math.f16mulf128
+)
+
+add_fp_unittest(
+ daddl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ daddl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.daddl
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ daddf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ daddf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.daddf128
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ ddivl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ddivl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.ddivl
+)
+
+add_fp_unittest(
+ ddivf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ddivf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.math.ddivf128
+)
+
+add_fp_unittest(
+ bfloat16_add_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bfloat16_add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.os
+ libc.src.__support.macros.properties.types
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+)
+
+add_fp_unittest(
+ bfloat16_div_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bfloat16_div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.bfloat16
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+)
+
+add_fp_unittest(
+ bfloat16_mul_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bfloat16_mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.basic_operations
+ libc.src.__support.FPUtil.bfloat16
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+)
+
+add_fp_unittest(
+ bfloat16_sub_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bfloat16_sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.os
+ libc.src.__support.macros.properties.types
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+)
+
+add_fp_unittest(
+ add_same_type_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ add_same_type_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.os
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ sub_same_type_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ sub_same_type_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.__support.FPUtil.generic.add_sub
+ libc.src.__support.macros.properties.os
+ libc.src.__support.macros.properties.types
+)
+
+add_fp_unittest(
+ bf16add_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16add_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16add
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16addf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16addf_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16addf
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16addl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16addl_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16addl
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16addf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16addf128_test.cpp
+ HDRS
+ AddTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16addf128
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16fma_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16fma_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16fma
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmaf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16fmaf_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16fmaf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmal_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16fmal_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16fmal
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16fmaf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16fmaf128_test.cpp
+ HDRS
+ FmaTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16fmaf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16div_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16div_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16div
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16divf_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16divf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16divl_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16divl
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16divf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16divf128_test.cpp
+ HDRS
+ DivTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16divf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mul_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16mul_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16mul
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mulf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16mulf_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16mulf
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mull_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16mull_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16mull
+ libc.src.__support.FPUtil.bfloat16
+)
+
+add_fp_unittest(
+ bf16mulf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16mulf128_test.cpp
+ HDRS
+ MulTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16mulf128
+ libc.src.__support.FPUtil.bfloat16
+)
+
+
+add_fp_unittest(
+ bf16sub_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16sub_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16sub
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16subf_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16subf_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16subf
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16subl_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16subl_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16subl
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
+
+add_fp_unittest(
+ bf16subf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ bf16subf128_test.cpp
+ HDRS
+ SubTest.h
+ DEPENDS
+ libc.hdr.errno_macros
+ libc.hdr.fenv_macros
+ libc.src.math.bf16subf128
+ libc.src.__support.FPUtil.bfloat16
+ libc.src.__support.macros.properties.os
+)
>From 5fc7d97a89c68b716511255e801509cd5d4ce82d Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 14 Feb 2026 11:29:49 +0530
Subject: [PATCH 07/43] other than smoke test
---
libc/test/src/math/fmabf16_test.cpp | 50 +++++++++++++++--------------
libc/test/src/math/sqrt_test.cpp | 26 +++++++--------
2 files changed, 39 insertions(+), 37 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index ae01948c21ca5..033d864d4aa8a 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -1,29 +1,31 @@
-// //===-- Exhaustive test for fmabf16 ---------------------------------------===//
-// //
-// // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// // See https://llvm.org/LICENSE.txt for license information.
-// // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-// //
-// //===----------------------------------------------------------------------===//
+//===-- Exhaustive test for fmabf16 ---------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
-// #include "src/__support/FPUtil/bfloat16.h"
-// #include "src/math/fmabf16.h"
-// #include "test/UnitTest/FPMatcher.h"
-// #include "test/UnitTest/Test.h"
-// #include "utils/MPFRWrapper/MPFRUtils.h"
+#include "src/__support/FPUtil/bfloat16.h"
+#include "src/math/fmabf16.h"
+#include "test/UnitTest/FPMatcher.h"
+#include "test/UnitTest/Test.h"
+#include "utils/MPFRWrapper/MPFRUtils.h"
-// using LlvmLibcFmabf16Test = LIBC_NAMESPACE::testing::FPTest<bfloat16>;
+using LlvmLibcFmabf16Test = LIBC_NAMESPACE::testing::FPTest<bfloat16>;
-// namespace mpfr = LIBC_NAMESPACE::testing::mpfr;
+namespace mpfr = LIBC_NAMESPACE::testing::mpfr;
-// // range: [0, inf]
-// static constexpr uint16_t POS_START = 0x0000U;
-// static constexpr uint16_t POS_STOP = 0x7f80U;
+// range: [0, inf]
+static constexpr uint16_t POS_START = 0x0000U;
+static constexpr uint16_t POS_STOP = 0x7f80U;
+
+// cover
+// normal
+//subnormal
+// NaN +-
+// inf +-
+// 0 +-
+
+// something better than smoke tests -> uses FmaTest.h
-// TEST_F(LlvmLibcSqrtf16Test, PositiveRange) {
-// for (uint16_t v = POS_START; v <= POS_STOP; ++v) {
-// bfloat16 x = FPBits(v).get_val();
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Sqrt, x,
-// LIBC_NAMESPACE::sqrtbf16(x), 0.5);
-// }
-// }
diff --git a/libc/test/src/math/sqrt_test.cpp b/libc/test/src/math/sqrt_test.cpp
index 1551b31d6f715..3eebc38fe5f4d 100644
--- a/libc/test/src/math/sqrt_test.cpp
+++ b/libc/test/src/math/sqrt_test.cpp
@@ -1,13 +1,13 @@
-//===-- Unittests for sqrt ------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "SqrtTest.h"
-
-#include "src/math/sqrt.h"
-
-LIST_SQRT_TESTS(double, LIBC_NAMESPACE::sqrt)
+//===-- Unittests for sqrt ------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "SqrtTest.h"
+
+#include "src/math/sqrt.h"
+
+LIST_SQRT_TESTS(double, LIBC_NAMESPACE::sqrt)
>From 02dd2dcc7896a9c3626f19605e7413e4a91d6a70 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 21 Feb 2026 17:25:21 +0530
Subject: [PATCH 08/43] added exhaustive tests for fmabf16 (<2^32)
---
libc/test/src/math/fmabf16_test.cpp | 87 +-
libc/utils/MPFRWrapper/MPFRUtils.cpp | 1696 +++++++++++++-------------
2 files changed, 927 insertions(+), 856 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 033d864d4aa8a..ed2349f10e799 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -6,13 +6,14 @@
//
//===----------------------------------------------------------------------===//
+#include <vector>
#include "src/__support/FPUtil/bfloat16.h"
#include "src/math/fmabf16.h"
#include "test/UnitTest/FPMatcher.h"
#include "test/UnitTest/Test.h"
#include "utils/MPFRWrapper/MPFRUtils.h"
-using LlvmLibcFmabf16Test = LIBC_NAMESPACE::testing::FPTest<bfloat16>;
+using LlvmLibcFmaBf16Test = LIBC_NAMESPACE::testing::FPTest<bfloat16>;
namespace mpfr = LIBC_NAMESPACE::testing::mpfr;
@@ -20,12 +21,82 @@ namespace mpfr = LIBC_NAMESPACE::testing::mpfr;
static constexpr uint16_t POS_START = 0x0000U;
static constexpr uint16_t POS_STOP = 0x7f80U;
-// cover
-// normal
-//subnormal
-// NaN +-
-// inf +-
-// 0 +-
+// range: [-0, -inf]
+static constexpr uint16_t NEG_START = 0x8000U;
+static constexpr uint16_t NEG_STOP = 0xff80U; //-inf
-// something better than smoke tests -> uses FmaTest.h
+//covers normal range since special cases covered in unit tests
+
+
+TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
+
+ std::vector<bfloat16> z_val = {
+ FPBits(0x0000).get_val(),
+ FPBits(0x8000).get_val(),
+ FPBits(0x3f80).get_val(),
+ FPBits(0xbf80).get_val(),
+ FPBits::min_subnormal().get_val(),
+ FPBits::max_normal().get_val(),
+ FPBits::inf().get_val(),
+ FPBits::quiet_nan().get_val()
+ };
+ for(bfloat16 z : z_val){
+ for (uint16_t v1 = POS_START; v1 <= POS_STOP; ++v1) {
+ for(uint16_t v2 = POS_START; v2<= POS_STOP; v2+=256) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ }
+ }
+}
+
+TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
+
+ std::vector<bfloat16> z_val = {
+ FPBits(0x0000).get_val(),
+ FPBits(0x8000).get_val(),
+ FPBits(0x3f80).get_val(),
+ FPBits(0xbf80).get_val(),
+ FPBits::min_subnormal().get_val(),
+ FPBits::max_normal().get_val(),
+ FPBits::inf().get_val(),
+ FPBits::quiet_nan().get_val()
+ };
+ for(bfloat16 z : z_val){
+ for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
+ for(uint16_t v2 = NEG_START; v2<= NEG_STOP; v2+=256) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ }
+ }
+}
+TEST_F(LlvmLibcFmaBf16Test, CancellationTest) {
+
+ for (uint16_t v1 = 0; v1 <= 0xFFFF; v1 += 13) {
+ for (uint16_t v2 = 0; v2 <= 0xFFFF; v2 += 17) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ bfloat16 z = -(x * y);
+
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+}
+}
\ No newline at end of file
diff --git a/libc/utils/MPFRWrapper/MPFRUtils.cpp b/libc/utils/MPFRWrapper/MPFRUtils.cpp
index a7d307b47c3e8..98e4480543edb 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.cpp
+++ b/libc/utils/MPFRWrapper/MPFRUtils.cpp
@@ -1,848 +1,848 @@
-//===-- Utils which wrap MPFR ---------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "MPFRUtils.h"
-#include "MPCommon.h"
-
-#include "src/__support/CPP/array.h"
-#include "src/__support/CPP/stringstream.h"
-#include "src/__support/FPUtil/bfloat16.h"
-#include "src/__support/FPUtil/fpbits_str.h"
-#include "src/__support/macros/config.h"
-#include "src/__support/macros/properties/types.h"
-
-namespace LIBC_NAMESPACE_DECL {
-namespace testing {
-namespace mpfr {
-namespace internal {
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-unary_operation(Operation op, InputType input, unsigned int precision,
- RoundingMode rounding) {
- MPFRNumber mpfrInput(input, precision, rounding);
- switch (op) {
- case Operation::Abs:
- return mpfrInput.abs();
- case Operation::Acos:
- return mpfrInput.acos();
- case Operation::Acosh:
- return mpfrInput.acosh();
- case Operation::Acospi:
- return mpfrInput.acospi();
- case Operation::Asin:
- return mpfrInput.asin();
- case Operation::Asinh:
- return mpfrInput.asinh();
- case Operation::Asinpi:
- return mpfrInput.asinpi();
- case Operation::Atan:
- return mpfrInput.atan();
- case Operation::Atanh:
- return mpfrInput.atanh();
- case Operation::Atanpi:
- return mpfrInput.atanpi();
- case Operation::Cbrt:
- return mpfrInput.cbrt();
- case Operation::Ceil:
- return mpfrInput.ceil();
- case Operation::Cos:
- return mpfrInput.cos();
- case Operation::Cosh:
- return mpfrInput.cosh();
- case Operation::Cospi:
- return mpfrInput.cospi();
- case Operation::Erf:
- return mpfrInput.erf();
- case Operation::Exp:
- return mpfrInput.exp();
- case Operation::Exp2:
- return mpfrInput.exp2();
- case Operation::Exp2m1:
- return mpfrInput.exp2m1();
- case Operation::Exp10:
- return mpfrInput.exp10();
- case Operation::Exp10m1:
- return mpfrInput.exp10m1();
- case Operation::Expm1:
- return mpfrInput.expm1();
- case Operation::Floor:
- return mpfrInput.floor();
- case Operation::Log:
- return mpfrInput.log();
- case Operation::Log2:
- return mpfrInput.log2();
- case Operation::Log10:
- return mpfrInput.log10();
- case Operation::Log1p:
- return mpfrInput.log1p();
- case Operation::Mod2PI:
- return mpfrInput.mod_2pi();
- case Operation::ModPIOver2:
- return mpfrInput.mod_pi_over_2();
- case Operation::ModPIOver4:
- return mpfrInput.mod_pi_over_4();
- case Operation::Round:
- return mpfrInput.round();
- case Operation::RoundEven:
- return mpfrInput.roundeven();
- case Operation::Rsqrt:
- return mpfrInput.rsqrt();
- case Operation::Sin:
- return mpfrInput.sin();
- case Operation::Sinpi:
- return mpfrInput.sinpi();
- case Operation::Sinh:
- return mpfrInput.sinh();
- case Operation::Sqrt:
- return mpfrInput.sqrt();
- case Operation::Tan:
- return mpfrInput.tan();
- case Operation::Tanh:
- return mpfrInput.tanh();
- case Operation::Tanpi:
- return mpfrInput.tanpi();
- case Operation::Trunc:
- return mpfrInput.trunc();
- default:
- __builtin_unreachable();
- }
-}
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-unary_operation_two_outputs(Operation op, InputType input, int &output,
- unsigned int precision, RoundingMode rounding) {
- MPFRNumber mpfrInput(input, precision, rounding);
- switch (op) {
- case Operation::Frexp:
- return mpfrInput.frexp(output);
- default:
- __builtin_unreachable();
- }
-}
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-binary_operation_one_output(Operation op, InputType x, InputType y,
- unsigned int precision, RoundingMode rounding) {
- MPFRNumber inputX(x, precision, rounding);
- MPFRNumber inputY(y, precision, rounding);
- switch (op) {
- case Operation::Add:
- return inputX.add(inputY);
- case Operation::Atan2:
- return inputX.atan2(inputY);
- case Operation::Div:
- return inputX.div(inputY);
- case Operation::Fmod:
- return inputX.fmod(inputY);
- case Operation::Hypot:
- return inputX.hypot(inputY);
- case Operation::Mul:
- return inputX.mul(inputY);
- case Operation::Pow:
- return inputX.pow(inputY);
- case Operation::Sub:
- return inputX.sub(inputY);
- default:
- __builtin_unreachable();
- }
-}
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-binary_operation_two_outputs(Operation op, InputType x, InputType y,
- int &output, unsigned int precision,
- RoundingMode rounding) {
- MPFRNumber inputX(x, precision, rounding);
- MPFRNumber inputY(y, precision, rounding);
- switch (op) {
- case Operation::RemQuo:
- return inputX.remquo(inputY, output);
- default:
- __builtin_unreachable();
- }
-}
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-ternary_operation_one_output(Operation op, InputType x, InputType y,
- InputType z, unsigned int precision,
- RoundingMode rounding) {
- // For FMA function, we just need to compare with the mpfr_fma with the same
- // precision as InputType. Using higher precision as the intermediate results
- // to compare might incorrectly fail due to double-rounding errors.
- MPFRNumber inputX(x, precision, rounding);
- MPFRNumber inputY(y, precision, rounding);
- MPFRNumber inputZ(z, precision, rounding);
- switch (op) {
- case Operation::Fma:
- return inputX.fma(inputY, inputZ);
- default:
- __builtin_unreachable();
- }
-}
-
-// Remark: For all the explain_*_error functions, we will use std::stringstream
-// to build the complete error messages before sending it to the outstream `OS`
-// once at the end. This will stop the error messages from interleaving when
-// the tests are running concurrently.
-template <typename InputType, typename OutputType>
-void explain_unary_operation_single_output_error(Operation op, InputType input,
- OutputType matchValue,
- double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfrInput(input, precision);
- MPFRNumber mpfr_result;
- mpfr_result = unary_operation(op, input, precision, rounding);
- MPFRNumber mpfrMatchValue(matchValue);
- cpp::array<char, 1024> msg_buf;
- cpp::StringStream msg(msg_buf);
- msg << "Match value not within tolerance value of MPFR result:\n"
- << " Input decimal: " << mpfrInput.str() << '\n';
- msg << " Input bits: " << str(FPBits<InputType>(input)) << '\n';
- msg << '\n' << " Match decimal: " << mpfrMatchValue.str() << '\n';
- msg << " Match bits: " << str(FPBits<OutputType>(matchValue)) << '\n';
- msg << '\n' << " MPFR result: " << mpfr_result.str() << '\n';
- msg << " MPFR rounded: "
- << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
- msg << '\n';
- msg << " ULP error: " << mpfr_result.ulp_as_mpfr_number(matchValue).str()
- << '\n';
- if (msg.overflow())
- __builtin_unreachable();
- tlog << msg.str();
-}
-
-template void explain_unary_operation_single_output_error(Operation op, float,
- float, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op, double,
- double, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- long double,
- long double, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op, double,
- float, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- long double, float,
- double, RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- long double, double,
- double, RoundingMode);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template void explain_unary_operation_single_output_error(Operation op, float16,
- float16, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op, float,
- float16, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op, double,
- float16, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- long double, float16,
- double, RoundingMode);
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template void explain_unary_operation_single_output_error(Operation op,
- float128, float16,
- double, RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template void explain_unary_operation_single_output_error(Operation op,
- float128, float128,
- double, RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- float128, float,
- double, RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- float128, double,
- double, RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- float128, long double,
- double, RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-
-template void explain_unary_operation_single_output_error(Operation op,
- bfloat16, bfloat16,
- double, RoundingMode);
-
-template <typename T>
-void explain_unary_operation_two_outputs_error(
- Operation op, T input, const BinaryOutput<T> &libc_result,
- double ulp_tolerance, RoundingMode rounding) {
- unsigned int precision = get_precision<T>(ulp_tolerance);
- MPFRNumber mpfrInput(input, precision);
- int mpfrIntResult;
- MPFRNumber mpfr_result = unary_operation_two_outputs(op, input, mpfrIntResult,
- precision, rounding);
-
- if (mpfrIntResult != libc_result.i) {
- tlog << "MPFR integral result: " << mpfrIntResult << '\n'
- << "Libc integral result: " << libc_result.i << '\n';
- } else {
- tlog << "Integral result from libc matches integral result from MPFR.\n";
- }
-
- MPFRNumber mpfrMatchValue(libc_result.f);
- tlog
- << "Libc floating point result is not within tolerance value of the MPFR "
- << "result.\n\n";
-
- tlog << " Input decimal: " << mpfrInput.str() << "\n\n";
-
- tlog << "Libc floating point value: " << mpfrMatchValue.str() << '\n';
- tlog << " Libc floating point bits: " << str(FPBits<T>(libc_result.f))
- << '\n';
- tlog << "\n\n";
-
- tlog << " MPFR result: " << mpfr_result.str() << '\n';
- tlog << " MPFR rounded: " << str(FPBits<T>(mpfr_result.as<T>()))
- << '\n';
- tlog << '\n'
- << " ULP error: "
- << mpfr_result.ulp_as_mpfr_number(libc_result.f).str() << '\n';
-}
-
-template void explain_unary_operation_two_outputs_error<float>(
- Operation, float, const BinaryOutput<float> &, double, RoundingMode);
-template void explain_unary_operation_two_outputs_error<double>(
- Operation, double, const BinaryOutput<double> &, double, RoundingMode);
-template void explain_unary_operation_two_outputs_error<long double>(
- Operation, long double, const BinaryOutput<long double> &, double,
- RoundingMode);
-
-template <typename T>
-void explain_binary_operation_two_outputs_error(
- Operation op, const BinaryInput<T> &input,
- const BinaryOutput<T> &libc_result, double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<T>(ulp_tolerance);
- MPFRNumber mpfrX(input.x, precision);
- MPFRNumber mpfrY(input.y, precision);
- int mpfrIntResult;
- MPFRNumber mpfr_result = binary_operation_two_outputs(
- op, input.x, input.y, mpfrIntResult, precision, rounding);
- MPFRNumber mpfrMatchValue(libc_result.f);
-
- tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str() << '\n'
- << "MPFR integral result: " << mpfrIntResult << '\n'
- << "Libc integral result: " << libc_result.i << '\n'
- << "Libc floating point result: " << mpfrMatchValue.str() << '\n'
- << " MPFR result: " << mpfr_result.str() << '\n';
- tlog << "Libc floating point result bits: " << str(FPBits<T>(libc_result.f))
- << '\n';
- tlog << " MPFR rounded bits: "
- << str(FPBits<T>(mpfr_result.as<T>())) << '\n';
- tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result.f).str()
- << '\n';
-}
-
-template void explain_binary_operation_two_outputs_error<float>(
- Operation, const BinaryInput<float> &, const BinaryOutput<float> &, double,
- RoundingMode);
-template void explain_binary_operation_two_outputs_error<double>(
- Operation, const BinaryInput<double> &, const BinaryOutput<double> &,
- double, RoundingMode);
-template void explain_binary_operation_two_outputs_error<long double>(
- Operation, const BinaryInput<long double> &,
- const BinaryOutput<long double> &, double, RoundingMode);
-
-template <typename InputType, typename OutputType>
-void explain_binary_operation_one_output_error(
- Operation op, const BinaryInput<InputType> &input, OutputType libc_result,
- double ulp_tolerance, RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfrX(input.x, precision);
- MPFRNumber mpfrY(input.y, precision);
- FPBits<InputType> xbits(input.x);
- FPBits<InputType> ybits(input.y);
- MPFRNumber mpfr_result =
- binary_operation_one_output(op, input.x, input.y, precision, rounding);
- MPFRNumber mpfrMatchValue(libc_result);
-
- tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str() << '\n';
- tlog << "First input bits: " << str(FPBits<InputType>(input.x)) << '\n';
- tlog << "Second input bits: " << str(FPBits<InputType>(input.y)) << '\n';
-
- tlog << "Libc result: " << mpfrMatchValue.str() << '\n'
- << "MPFR result: " << mpfr_result.str() << '\n';
- tlog << "Libc floating point result bits: "
- << str(FPBits<OutputType>(libc_result)) << '\n';
- tlog << " MPFR rounded bits: "
- << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
- tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result).str()
- << '\n';
-}
-
-template void
-explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
- float, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<double> &, float, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<double> &, double, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<long double> &, float, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<long double> &, double, double, RoundingMode);
-template void
-explain_binary_operation_one_output_error(Operation,
- const BinaryInput<long double> &,
- long double, double, RoundingMode);
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<float16> &, float16, double, RoundingMode);
-template void
-explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
- float16, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<double> &, float16, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<long double> &, float16, double, RoundingMode);
-#endif
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<float128> &, float128, double, RoundingMode);
-#endif
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<bfloat16> &, bfloat16, double, RoundingMode);
-template void
-explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
- bfloat16, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<double> &, bfloat16, double, RoundingMode);
-template void
-explain_binary_operation_one_output_error(Operation,
- const BinaryInput<long double> &,
- bfloat16, double, RoundingMode);
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<float128> &, bfloat16, double, RoundingMode);
-#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
- // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-
-template <typename InputType, typename OutputType>
-void explain_ternary_operation_one_output_error(
- Operation op, const TernaryInput<InputType> &input, OutputType libc_result,
- double ulp_tolerance, RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfrX(input.x, precision);
- MPFRNumber mpfrY(input.y, precision);
- MPFRNumber mpfrZ(input.z, precision);
- FPBits<InputType> xbits(input.x);
- FPBits<InputType> ybits(input.y);
- FPBits<InputType> zbits(input.z);
- MPFRNumber mpfr_result = ternary_operation_one_output(
- op, input.x, input.y, input.z, precision, rounding);
- MPFRNumber mpfrMatchValue(libc_result);
-
- tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str()
- << " z: " << mpfrZ.str() << '\n';
- tlog << " First input bits: " << str(FPBits<InputType>(input.x)) << '\n';
- tlog << "Second input bits: " << str(FPBits<InputType>(input.y)) << '\n';
- tlog << " Third input bits: " << str(FPBits<InputType>(input.z)) << '\n';
-
- tlog << "Libc result: " << mpfrMatchValue.str() << '\n'
- << "MPFR result: " << mpfr_result.str() << '\n';
- tlog << "Libc floating point result bits: "
- << str(FPBits<OutputType>(libc_result)) << '\n';
- tlog << " MPFR rounded bits: "
- << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
- tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result).str()
- << '\n';
-}
-
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float> &, float, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<double> &, float, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<double> &, double, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<long double> &, float, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<long double> &, double, double, RoundingMode);
-template void
-explain_ternary_operation_one_output_error(Operation,
- const TernaryInput<long double> &,
- long double, double, RoundingMode);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float16> &, float16, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float> &, float16, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<double> &, float16, double, RoundingMode);
-template void
-explain_ternary_operation_one_output_error(Operation,
- const TernaryInput<long double> &,
- float16, double, RoundingMode);
-#endif
-
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float> &, bfloat16, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<double> &, bfloat16, double, RoundingMode);
-template void
-explain_ternary_operation_one_output_error(Operation,
- const TernaryInput<long double> &,
- bfloat16, double, RoundingMode);
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float128> &, bfloat16, double, RoundingMode);
-#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
- // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-
-template <typename InputType, typename OutputType>
-bool compare_unary_operation_single_output(Operation op, InputType input,
- OutputType libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfr_result;
- mpfr_result = unary_operation(op, input, precision, rounding);
- double ulp = mpfr_result.ulp(libc_result);
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_unary_operation_single_output(Operation, float, float,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, double, double,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, long double,
- long double, double,
- RoundingMode);
-template bool compare_unary_operation_single_output(Operation, double, float,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, long double,
- float, double,
- RoundingMode);
-template bool compare_unary_operation_single_output(Operation, long double,
- double, double,
- RoundingMode);
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool compare_unary_operation_single_output(Operation, float16, float16,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, float, float16,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, double, float16,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, long double,
- float16, double,
- RoundingMode);
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool compare_unary_operation_single_output(Operation, float128,
- float16, double,
- RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool compare_unary_operation_single_output(Operation, float128,
- float128, double,
- RoundingMode);
-template bool compare_unary_operation_single_output(Operation, float128, float,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, float128, double,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, float128,
- long double, double,
- RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool compare_unary_operation_single_output(Operation, bfloat16,
- bfloat16, double,
- RoundingMode);
-
-template <typename T>
-bool compare_unary_operation_two_outputs(Operation op, T input,
- const BinaryOutput<T> &libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- int mpfrIntResult;
- unsigned int precision = get_precision<T>(ulp_tolerance);
- MPFRNumber mpfr_result = unary_operation_two_outputs(op, input, mpfrIntResult,
- precision, rounding);
- double ulp = mpfr_result.ulp(libc_result.f);
-
- if (mpfrIntResult != libc_result.i)
- return false;
-
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_unary_operation_two_outputs<float>(
- Operation, float, const BinaryOutput<float> &, double, RoundingMode);
-template bool compare_unary_operation_two_outputs<double>(
- Operation, double, const BinaryOutput<double> &, double, RoundingMode);
-template bool compare_unary_operation_two_outputs<long double>(
- Operation, long double, const BinaryOutput<long double> &, double,
- RoundingMode);
-
-template <typename T>
-bool compare_binary_operation_two_outputs(Operation op,
- const BinaryInput<T> &input,
- const BinaryOutput<T> &libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- int mpfrIntResult;
- unsigned int precision = get_precision<T>(ulp_tolerance);
- MPFRNumber mpfr_result = binary_operation_two_outputs(
- op, input.x, input.y, mpfrIntResult, precision, rounding);
- double ulp = mpfr_result.ulp(libc_result.f);
-
- if (mpfrIntResult != libc_result.i) {
- if (op == Operation::RemQuo) {
- if ((0x7 & mpfrIntResult) != (0x7 & libc_result.i))
- return false;
- } else {
- return false;
- }
- }
-
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_binary_operation_two_outputs<float>(
- Operation, const BinaryInput<float> &, const BinaryOutput<float> &, double,
- RoundingMode);
-template bool compare_binary_operation_two_outputs<double>(
- Operation, const BinaryInput<double> &, const BinaryOutput<double> &,
- double, RoundingMode);
-template bool compare_binary_operation_two_outputs<long double>(
- Operation, const BinaryInput<long double> &,
- const BinaryOutput<long double> &, double, RoundingMode);
-
-template <typename InputType, typename OutputType>
-bool compare_binary_operation_one_output(Operation op,
- const BinaryInput<InputType> &input,
- OutputType libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfr_result =
- binary_operation_one_output(op, input.x, input.y, precision, rounding);
- double ulp = mpfr_result.ulp(libc_result);
-
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float> &,
- float, double, RoundingMode);
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<double> &,
- double, double, RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- float, double, RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- double, double, RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- long double, double, RoundingMode);
-
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<double> &,
- float, double, RoundingMode);
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float16> &,
- float16, double,
- RoundingMode);
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float> &,
- float16, double,
- RoundingMode);
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<double> &,
- float16, double,
- RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- float16, double, RoundingMode);
-#endif
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float128> &,
- float128, double,
- RoundingMode);
-#endif
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<bfloat16> &,
- bfloat16, double,
- RoundingMode);
-
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float> &,
- bfloat16, double,
- RoundingMode);
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<double> &,
- bfloat16, double,
- RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- bfloat16, double, RoundingMode);
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float128> &,
- bfloat16, double,
- RoundingMode);
-#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
- // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template <typename InputType, typename OutputType>
-bool compare_ternary_operation_one_output(Operation op,
- const TernaryInput<InputType> &input,
- OutputType libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfr_result = ternary_operation_one_output(
- op, input.x, input.y, input.z, precision, rounding);
- double ulp = mpfr_result.ulp(libc_result);
-
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<float> &,
- float, double, RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<double> &,
- float, double, RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<double> &,
- double, double,
- RoundingMode);
-template bool compare_ternary_operation_one_output(
- Operation, const TernaryInput<long double> &, float, double, RoundingMode);
-template bool compare_ternary_operation_one_output(
- Operation, const TernaryInput<long double> &, double, double, RoundingMode);
-template bool
-compare_ternary_operation_one_output(Operation,
- const TernaryInput<long double> &,
- long double, double, RoundingMode);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool
-compare_ternary_operation_one_output(Operation, const TernaryInput<float16> &,
- float16, double, RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<float> &,
- float16, double,
- RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<double> &,
- float16, double,
- RoundingMode);
-template bool
-compare_ternary_operation_one_output(Operation,
- const TernaryInput<long double> &, float16,
- double, RoundingMode);
-#endif
-
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<float> &,
- bfloat16, double,
- RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<double> &,
- bfloat16, double,
- RoundingMode);
-template bool
-compare_ternary_operation_one_output(Operation,
- const TernaryInput<long double> &,
- bfloat16, double, RoundingMode);
-
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template bool
-compare_ternary_operation_one_output(Operation, const TernaryInput<float128> &,
- bfloat16, double, RoundingMode);
-#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
- // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-
-} // namespace internal
-
-template <typename T> bool round_to_long(T x, long &result) {
- MPFRNumber mpfr(x);
- return mpfr.round_to_long(result);
-}
-
-template bool round_to_long<float>(float, long &);
-template bool round_to_long<double>(double, long &);
-template bool round_to_long<long double>(long double, long &);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool round_to_long<float16>(float16, long &);
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool round_to_long<float128>(float128, long &);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-
-template bool round_to_long<bfloat16>(bfloat16, long &);
-
-template <typename T> bool round_to_long(T x, RoundingMode mode, long &result) {
- MPFRNumber mpfr(x);
- return mpfr.round_to_long(get_mpfr_rounding_mode(mode), result);
-}
-
-template bool round_to_long<float>(float, RoundingMode, long &);
-template bool round_to_long<double>(double, RoundingMode, long &);
-template bool round_to_long<long double>(long double, RoundingMode, long &);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool round_to_long<float16>(float16, RoundingMode, long &);
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool round_to_long<float128>(float128, RoundingMode, long &);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-
-template bool round_to_long<bfloat16>(bfloat16, RoundingMode, long &);
-
-template <typename T> T round(T x, RoundingMode mode) {
- MPFRNumber mpfr(x);
- MPFRNumber result = mpfr.rint(get_mpfr_rounding_mode(mode));
- return result.as<T>();
-}
-
-template float round<float>(float, RoundingMode);
-template double round<double>(double, RoundingMode);
-template long double round<long double>(long double, RoundingMode);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template float16 round<float16>(float16, RoundingMode);
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template float128 round<float128>(float128, RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-
-template bfloat16 round<bfloat16>(bfloat16, RoundingMode);
-
-} // namespace mpfr
-} // namespace testing
-} // namespace LIBC_NAMESPACE_DECL
+//===-- Utils which wrap MPFR ---------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "MPFRUtils.h"
+#include "MPCommon.h"
+
+#include "src/__support/CPP/array.h"
+#include "src/__support/CPP/stringstream.h"
+#include "src/__support/FPUtil/bfloat16.h"
+#include "src/__support/FPUtil/fpbits_str.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/properties/types.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace testing {
+namespace mpfr {
+namespace internal {
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+unary_operation(Operation op, InputType input, unsigned int precision,
+ RoundingMode rounding) {
+ MPFRNumber mpfrInput(input, precision, rounding);
+ switch (op) {
+ case Operation::Abs:
+ return mpfrInput.abs();
+ case Operation::Acos:
+ return mpfrInput.acos();
+ case Operation::Acosh:
+ return mpfrInput.acosh();
+ case Operation::Acospi:
+ return mpfrInput.acospi();
+ case Operation::Asin:
+ return mpfrInput.asin();
+ case Operation::Asinh:
+ return mpfrInput.asinh();
+ case Operation::Asinpi:
+ return mpfrInput.asinpi();
+ case Operation::Atan:
+ return mpfrInput.atan();
+ case Operation::Atanh:
+ return mpfrInput.atanh();
+ case Operation::Atanpi:
+ return mpfrInput.atanpi();
+ case Operation::Cbrt:
+ return mpfrInput.cbrt();
+ case Operation::Ceil:
+ return mpfrInput.ceil();
+ case Operation::Cos:
+ return mpfrInput.cos();
+ case Operation::Cosh:
+ return mpfrInput.cosh();
+ case Operation::Cospi:
+ return mpfrInput.cospi();
+ case Operation::Erf:
+ return mpfrInput.erf();
+ case Operation::Exp:
+ return mpfrInput.exp();
+ case Operation::Exp2:
+ return mpfrInput.exp2();
+ case Operation::Exp2m1:
+ return mpfrInput.exp2m1();
+ case Operation::Exp10:
+ return mpfrInput.exp10();
+ case Operation::Exp10m1:
+ return mpfrInput.exp10m1();
+ case Operation::Expm1:
+ return mpfrInput.expm1();
+ case Operation::Floor:
+ return mpfrInput.floor();
+ case Operation::Log:
+ return mpfrInput.log();
+ case Operation::Log2:
+ return mpfrInput.log2();
+ case Operation::Log10:
+ return mpfrInput.log10();
+ case Operation::Log1p:
+ return mpfrInput.log1p();
+ case Operation::Mod2PI:
+ return mpfrInput.mod_2pi();
+ case Operation::ModPIOver2:
+ return mpfrInput.mod_pi_over_2();
+ case Operation::ModPIOver4:
+ return mpfrInput.mod_pi_over_4();
+ case Operation::Round:
+ return mpfrInput.round();
+ case Operation::RoundEven:
+ return mpfrInput.roundeven();
+ case Operation::Rsqrt:
+ return mpfrInput.rsqrt();
+ case Operation::Sin:
+ return mpfrInput.sin();
+ case Operation::Sinpi:
+ return mpfrInput.sinpi();
+ case Operation::Sinh:
+ return mpfrInput.sinh();
+ case Operation::Sqrt:
+ return mpfrInput.sqrt();
+ case Operation::Tan:
+ return mpfrInput.tan();
+ case Operation::Tanh:
+ return mpfrInput.tanh();
+ case Operation::Tanpi:
+ return mpfrInput.tanpi();
+ case Operation::Trunc:
+ return mpfrInput.trunc();
+ default:
+ __builtin_unreachable();
+ }
+}
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+unary_operation_two_outputs(Operation op, InputType input, int &output,
+ unsigned int precision, RoundingMode rounding) {
+ MPFRNumber mpfrInput(input, precision, rounding);
+ switch (op) {
+ case Operation::Frexp:
+ return mpfrInput.frexp(output);
+ default:
+ __builtin_unreachable();
+ }
+}
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+binary_operation_one_output(Operation op, InputType x, InputType y,
+ unsigned int precision, RoundingMode rounding) {
+ MPFRNumber inputX(x, precision, rounding);
+ MPFRNumber inputY(y, precision, rounding);
+ switch (op) {
+ case Operation::Add:
+ return inputX.add(inputY);
+ case Operation::Atan2:
+ return inputX.atan2(inputY);
+ case Operation::Div:
+ return inputX.div(inputY);
+ case Operation::Fmod:
+ return inputX.fmod(inputY);
+ case Operation::Hypot:
+ return inputX.hypot(inputY);
+ case Operation::Mul:
+ return inputX.mul(inputY);
+ case Operation::Pow:
+ return inputX.pow(inputY);
+ case Operation::Sub:
+ return inputX.sub(inputY);
+ default:
+ __builtin_unreachable();
+ }
+}
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+binary_operation_two_outputs(Operation op, InputType x, InputType y,
+ int &output, unsigned int precision,
+ RoundingMode rounding) {
+ MPFRNumber inputX(x, precision, rounding);
+ MPFRNumber inputY(y, precision, rounding);
+ switch (op) {
+ case Operation::RemQuo:
+ return inputX.remquo(inputY, output);
+ default:
+ __builtin_unreachable();
+ }
+}
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+ternary_operation_one_output(Operation op, InputType x, InputType y,
+ InputType z, unsigned int precision,
+ RoundingMode rounding) {
+ // For FMA function, we just need to compare with the mpfr_fma with the same
+ // precision as InputType. Using higher precision as the intermediate results
+ // to compare might incorrectly fail due to double-rounding errors.
+ MPFRNumber inputX(x, precision, rounding);
+ MPFRNumber inputY(y, precision, rounding);
+ MPFRNumber inputZ(z, precision, rounding);
+ switch (op) {
+ case Operation::Fma:
+ return inputX.fma(inputY, inputZ);
+ default:
+ __builtin_unreachable();
+ }
+}
+
+// Remark: For all the explain_*_error functions, we will use std::stringstream
+// to build the complete error messages before sending it to the outstream `OS`
+// once at the end. This will stop the error messages from interleaving when
+// the tests are running concurrently.
+template <typename InputType, typename OutputType>
+void explain_unary_operation_single_output_error(Operation op, InputType input,
+ OutputType matchValue,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfrInput(input, precision);
+ MPFRNumber mpfr_result;
+ mpfr_result = unary_operation(op, input, precision, rounding);
+ MPFRNumber mpfrMatchValue(matchValue);
+ cpp::array<char, 1024> msg_buf;
+ cpp::StringStream msg(msg_buf);
+ msg << "Match value not within tolerance value of MPFR result:\n"
+ << " Input decimal: " << mpfrInput.str() << '\n';
+ msg << " Input bits: " << str(FPBits<InputType>(input)) << '\n';
+ msg << '\n' << " Match decimal: " << mpfrMatchValue.str() << '\n';
+ msg << " Match bits: " << str(FPBits<OutputType>(matchValue)) << '\n';
+ msg << '\n' << " MPFR result: " << mpfr_result.str() << '\n';
+ msg << " MPFR rounded: "
+ << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
+ msg << '\n';
+ msg << " ULP error: " << mpfr_result.ulp_as_mpfr_number(matchValue).str()
+ << '\n';
+ if (msg.overflow())
+ __builtin_unreachable();
+ tlog << msg.str();
+}
+
+template void explain_unary_operation_single_output_error(Operation op, float,
+ float, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op, double,
+ double, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ long double,
+ long double, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op, double,
+ float, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ long double, float,
+ double, RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ long double, double,
+ double, RoundingMode);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template void explain_unary_operation_single_output_error(Operation op, float16,
+ float16, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op, float,
+ float16, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op, double,
+ float16, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ long double, float16,
+ double, RoundingMode);
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, float16,
+ double, RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, float128,
+ double, RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, float,
+ double, RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, double,
+ double, RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, long double,
+ double, RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+
+template void explain_unary_operation_single_output_error(Operation op,
+ bfloat16, bfloat16,
+ double, RoundingMode);
+
+template <typename T>
+void explain_unary_operation_two_outputs_error(
+ Operation op, T input, const BinaryOutput<T> &libc_result,
+ double ulp_tolerance, RoundingMode rounding) {
+ unsigned int precision = get_precision<T>(ulp_tolerance);
+ MPFRNumber mpfrInput(input, precision);
+ int mpfrIntResult;
+ MPFRNumber mpfr_result = unary_operation_two_outputs(op, input, mpfrIntResult,
+ precision, rounding);
+
+ if (mpfrIntResult != libc_result.i) {
+ tlog << "MPFR integral result: " << mpfrIntResult << '\n'
+ << "Libc integral result: " << libc_result.i << '\n';
+ } else {
+ tlog << "Integral result from libc matches integral result from MPFR.\n";
+ }
+
+ MPFRNumber mpfrMatchValue(libc_result.f);
+ tlog
+ << "Libc floating point result is not within tolerance value of the MPFR "
+ << "result.\n\n";
+
+ tlog << " Input decimal: " << mpfrInput.str() << "\n\n";
+
+ tlog << "Libc floating point value: " << mpfrMatchValue.str() << '\n';
+ tlog << " Libc floating point bits: " << str(FPBits<T>(libc_result.f))
+ << '\n';
+ tlog << "\n\n";
+
+ tlog << " MPFR result: " << mpfr_result.str() << '\n';
+ tlog << " MPFR rounded: " << str(FPBits<T>(mpfr_result.as<T>()))
+ << '\n';
+ tlog << '\n'
+ << " ULP error: "
+ << mpfr_result.ulp_as_mpfr_number(libc_result.f).str() << '\n';
+}
+
+template void explain_unary_operation_two_outputs_error<float>(
+ Operation, float, const BinaryOutput<float> &, double, RoundingMode);
+template void explain_unary_operation_two_outputs_error<double>(
+ Operation, double, const BinaryOutput<double> &, double, RoundingMode);
+template void explain_unary_operation_two_outputs_error<long double>(
+ Operation, long double, const BinaryOutput<long double> &, double,
+ RoundingMode);
+
+template <typename T>
+void explain_binary_operation_two_outputs_error(
+ Operation op, const BinaryInput<T> &input,
+ const BinaryOutput<T> &libc_result, double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<T>(ulp_tolerance);
+ MPFRNumber mpfrX(input.x, precision);
+ MPFRNumber mpfrY(input.y, precision);
+ int mpfrIntResult;
+ MPFRNumber mpfr_result = binary_operation_two_outputs(
+ op, input.x, input.y, mpfrIntResult, precision, rounding);
+ MPFRNumber mpfrMatchValue(libc_result.f);
+
+ tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str() << '\n'
+ << "MPFR integral result: " << mpfrIntResult << '\n'
+ << "Libc integral result: " << libc_result.i << '\n'
+ << "Libc floating point result: " << mpfrMatchValue.str() << '\n'
+ << " MPFR result: " << mpfr_result.str() << '\n';
+ tlog << "Libc floating point result bits: " << str(FPBits<T>(libc_result.f))
+ << '\n';
+ tlog << " MPFR rounded bits: "
+ << str(FPBits<T>(mpfr_result.as<T>())) << '\n';
+ tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result.f).str()
+ << '\n';
+}
+
+template void explain_binary_operation_two_outputs_error<float>(
+ Operation, const BinaryInput<float> &, const BinaryOutput<float> &, double,
+ RoundingMode);
+template void explain_binary_operation_two_outputs_error<double>(
+ Operation, const BinaryInput<double> &, const BinaryOutput<double> &,
+ double, RoundingMode);
+template void explain_binary_operation_two_outputs_error<long double>(
+ Operation, const BinaryInput<long double> &,
+ const BinaryOutput<long double> &, double, RoundingMode);
+
+template <typename InputType, typename OutputType>
+void explain_binary_operation_one_output_error(
+ Operation op, const BinaryInput<InputType> &input, OutputType libc_result,
+ double ulp_tolerance, RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfrX(input.x, precision);
+ MPFRNumber mpfrY(input.y, precision);
+ FPBits<InputType> xbits(input.x);
+ FPBits<InputType> ybits(input.y);
+ MPFRNumber mpfr_result =
+ binary_operation_one_output(op, input.x, input.y, precision, rounding);
+ MPFRNumber mpfrMatchValue(libc_result);
+
+ tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str() << '\n';
+ tlog << "First input bits: " << str(FPBits<InputType>(input.x)) << '\n';
+ tlog << "Second input bits: " << str(FPBits<InputType>(input.y)) << '\n';
+
+ tlog << "Libc result: " << mpfrMatchValue.str() << '\n'
+ << "MPFR result: " << mpfr_result.str() << '\n';
+ tlog << "Libc floating point result bits: "
+ << str(FPBits<OutputType>(libc_result)) << '\n';
+ tlog << " MPFR rounded bits: "
+ << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
+ tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result).str()
+ << '\n';
+}
+
+template void
+explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
+ float, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<double> &, float, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<double> &, double, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<long double> &, float, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<long double> &, double, double, RoundingMode);
+template void
+explain_binary_operation_one_output_error(Operation,
+ const BinaryInput<long double> &,
+ long double, double, RoundingMode);
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<float16> &, float16, double, RoundingMode);
+template void
+explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
+ float16, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<double> &, float16, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<long double> &, float16, double, RoundingMode);
+#endif
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<float128> &, float128, double, RoundingMode);
+#endif
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<bfloat16> &, bfloat16, double, RoundingMode);
+template void
+explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
+ bfloat16, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<double> &, bfloat16, double, RoundingMode);
+template void
+explain_binary_operation_one_output_error(Operation,
+ const BinaryInput<long double> &,
+ bfloat16, double, RoundingMode);
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<float128> &, bfloat16, double, RoundingMode);
+#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
+ // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+
+template <typename InputType, typename OutputType>
+void explain_ternary_operation_one_output_error(
+ Operation op, const TernaryInput<InputType> &input, OutputType libc_result,
+ double ulp_tolerance, RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfrX(input.x, precision);
+ MPFRNumber mpfrY(input.y, precision);
+ MPFRNumber mpfrZ(input.z, precision);
+ FPBits<InputType> xbits(input.x);
+ FPBits<InputType> ybits(input.y);
+ FPBits<InputType> zbits(input.z);
+ MPFRNumber mpfr_result = ternary_operation_one_output(
+ op, input.x, input.y, input.z, precision, rounding);
+ MPFRNumber mpfrMatchValue(libc_result);
+
+ tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str()
+ << " z: " << mpfrZ.str() << '\n';
+ tlog << " First input bits: " << str(FPBits<InputType>(input.x)) << '\n';
+ tlog << "Second input bits: " << str(FPBits<InputType>(input.y)) << '\n';
+ tlog << " Third input bits: " << str(FPBits<InputType>(input.z)) << '\n';
+
+ tlog << "Libc result: " << mpfrMatchValue.str() << '\n'
+ << "MPFR result: " << mpfr_result.str() << '\n';
+ tlog << "Libc floating point result bits: "
+ << str(FPBits<OutputType>(libc_result)) << '\n';
+ tlog << " MPFR rounded bits: "
+ << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
+ tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result).str()
+ << '\n';
+}
+
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float> &, float, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<double> &, float, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<double> &, double, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<long double> &, float, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<long double> &, double, double, RoundingMode);
+template void
+explain_ternary_operation_one_output_error(Operation,
+ const TernaryInput<long double> &,
+ long double, double, RoundingMode);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float16> &, float16, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float> &, float16, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<double> &, float16, double, RoundingMode);
+template void
+explain_ternary_operation_one_output_error(Operation,
+ const TernaryInput<long double> &,
+ float16, double, RoundingMode);
+#endif
+
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float> &, bfloat16, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<double> &, bfloat16, double, RoundingMode);
+template void
+explain_ternary_operation_one_output_error(Operation,
+ const TernaryInput<long double> &,
+ bfloat16, double, RoundingMode);
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float128> &, bfloat16, double, RoundingMode);
+#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
+ // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+
+template <typename InputType, typename OutputType>
+bool compare_unary_operation_single_output(Operation op, InputType input,
+ OutputType libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfr_result;
+ mpfr_result = unary_operation(op, input, precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result);
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_unary_operation_single_output(Operation, float, float,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, double, double,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, long double,
+ long double, double,
+ RoundingMode);
+template bool compare_unary_operation_single_output(Operation, double, float,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, long double,
+ float, double,
+ RoundingMode);
+template bool compare_unary_operation_single_output(Operation, long double,
+ double, double,
+ RoundingMode);
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool compare_unary_operation_single_output(Operation, float16, float16,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, float, float16,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, double, float16,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, long double,
+ float16, double,
+ RoundingMode);
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool compare_unary_operation_single_output(Operation, float128,
+ float16, double,
+ RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool compare_unary_operation_single_output(Operation, float128,
+ float128, double,
+ RoundingMode);
+template bool compare_unary_operation_single_output(Operation, float128, float,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, float128, double,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, float128,
+ long double, double,
+ RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool compare_unary_operation_single_output(Operation, bfloat16,
+ bfloat16, double,
+ RoundingMode);
+
+template <typename T>
+bool compare_unary_operation_two_outputs(Operation op, T input,
+ const BinaryOutput<T> &libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ int mpfrIntResult;
+ unsigned int precision = get_precision<T>(ulp_tolerance);
+ MPFRNumber mpfr_result = unary_operation_two_outputs(op, input, mpfrIntResult,
+ precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result.f);
+
+ if (mpfrIntResult != libc_result.i)
+ return false;
+
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_unary_operation_two_outputs<float>(
+ Operation, float, const BinaryOutput<float> &, double, RoundingMode);
+template bool compare_unary_operation_two_outputs<double>(
+ Operation, double, const BinaryOutput<double> &, double, RoundingMode);
+template bool compare_unary_operation_two_outputs<long double>(
+ Operation, long double, const BinaryOutput<long double> &, double,
+ RoundingMode);
+
+template <typename T>
+bool compare_binary_operation_two_outputs(Operation op,
+ const BinaryInput<T> &input,
+ const BinaryOutput<T> &libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ int mpfrIntResult;
+ unsigned int precision = get_precision<T>(ulp_tolerance);
+ MPFRNumber mpfr_result = binary_operation_two_outputs(
+ op, input.x, input.y, mpfrIntResult, precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result.f);
+
+ if (mpfrIntResult != libc_result.i) {
+ if (op == Operation::RemQuo) {
+ if ((0x7 & mpfrIntResult) != (0x7 & libc_result.i))
+ return false;
+ } else {
+ return false;
+ }
+ }
+
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_binary_operation_two_outputs<float>(
+ Operation, const BinaryInput<float> &, const BinaryOutput<float> &, double,
+ RoundingMode);
+template bool compare_binary_operation_two_outputs<double>(
+ Operation, const BinaryInput<double> &, const BinaryOutput<double> &,
+ double, RoundingMode);
+template bool compare_binary_operation_two_outputs<long double>(
+ Operation, const BinaryInput<long double> &,
+ const BinaryOutput<long double> &, double, RoundingMode);
+
+template <typename InputType, typename OutputType>
+bool compare_binary_operation_one_output(Operation op,
+ const BinaryInput<InputType> &input,
+ OutputType libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfr_result =
+ binary_operation_one_output(op, input.x, input.y, precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result);
+
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float> &,
+ float, double, RoundingMode);
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<double> &,
+ double, double, RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ float, double, RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ double, double, RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ long double, double, RoundingMode);
+
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<double> &,
+ float, double, RoundingMode);
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float16> &,
+ float16, double,
+ RoundingMode);
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float> &,
+ float16, double,
+ RoundingMode);
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<double> &,
+ float16, double,
+ RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ float16, double, RoundingMode);
+#endif
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float128> &,
+ float128, double,
+ RoundingMode);
+#endif
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<bfloat16> &,
+ bfloat16, double,
+ RoundingMode);
+
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float> &,
+ bfloat16, double,
+ RoundingMode);
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<double> &,
+ bfloat16, double,
+ RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ bfloat16, double, RoundingMode);
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float128> &,
+ bfloat16, double,
+ RoundingMode);
+#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
+ // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template <typename InputType, typename OutputType>
+bool compare_ternary_operation_one_output(Operation op,
+ const TernaryInput<InputType> &input,
+ OutputType libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfr_result = ternary_operation_one_output(
+ op, input.x, input.y, input.z, precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result);
+
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<float> &,
+ float, double, RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<double> &,
+ float, double, RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<double> &,
+ double, double,
+ RoundingMode);
+template bool compare_ternary_operation_one_output(
+ Operation, const TernaryInput<long double> &, float, double, RoundingMode);
+template bool compare_ternary_operation_one_output(
+ Operation, const TernaryInput<long double> &, double, double, RoundingMode);
+template bool
+compare_ternary_operation_one_output(Operation,
+ const TernaryInput<long double> &,
+ long double, double, RoundingMode);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool
+compare_ternary_operation_one_output(Operation, const TernaryInput<float16> &,
+ float16, double, RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<float> &,
+ float16, double,
+ RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<double> &,
+ float16, double,
+ RoundingMode);
+template bool
+compare_ternary_operation_one_output(Operation,
+ const TernaryInput<long double> &, float16,
+ double, RoundingMode);
+#endif
+
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<float> &,
+ bfloat16, double,
+ RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<double> &,
+ bfloat16, double,
+ RoundingMode);
+template bool
+compare_ternary_operation_one_output(Operation,
+ const TernaryInput<long double> &,
+ bfloat16, double, RoundingMode);
+
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template bool
+compare_ternary_operation_one_output(Operation, const TernaryInput<float128> &,
+ bfloat16, double, RoundingMode);
+#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
+ // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+
+} // namespace internal
+
+template <typename T> bool round_to_long(T x, long &result) {
+ MPFRNumber mpfr(x);
+ return mpfr.round_to_long(result);
+}
+
+template bool round_to_long<float>(float, long &);
+template bool round_to_long<double>(double, long &);
+template bool round_to_long<long double>(long double, long &);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool round_to_long<float16>(float16, long &);
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool round_to_long<float128>(float128, long &);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+
+template bool round_to_long<bfloat16>(bfloat16, long &);
+
+template <typename T> bool round_to_long(T x, RoundingMode mode, long &result) {
+ MPFRNumber mpfr(x);
+ return mpfr.round_to_long(get_mpfr_rounding_mode(mode), result);
+}
+
+template bool round_to_long<float>(float, RoundingMode, long &);
+template bool round_to_long<double>(double, RoundingMode, long &);
+template bool round_to_long<long double>(long double, RoundingMode, long &);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool round_to_long<float16>(float16, RoundingMode, long &);
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool round_to_long<float128>(float128, RoundingMode, long &);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+
+template bool round_to_long<bfloat16>(bfloat16, RoundingMode, long &);
+
+template <typename T> T round(T x, RoundingMode mode) {
+ MPFRNumber mpfr(x);
+ MPFRNumber result = mpfr.rint(get_mpfr_rounding_mode(mode));
+ return result.as<T>();
+}
+
+template float round<float>(float, RoundingMode);
+template double round<double>(double, RoundingMode);
+template long double round<long double>(long double, RoundingMode);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template float16 round<float16>(float16, RoundingMode);
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template float128 round<float128>(float128, RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+
+template bfloat16 round<bfloat16>(bfloat16, RoundingMode);
+
+} // namespace mpfr
+} // namespace testing
+} // namespace LIBC_NAMESPACE_DECL
>From 41295e02e34effe62e9a1564b60bb677969af84a Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 21 Feb 2026 17:34:10 +0530
Subject: [PATCH 09/43] lf issue fixed
---
libc/test/src/math/fmabf16_test.cpp | 58 +-
libc/utils/MPFRWrapper/MPFRUtils.cpp | 1696 +++++++++++++-------------
2 files changed, 871 insertions(+), 883 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index ed2349f10e799..431fa36864a57 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -6,12 +6,12 @@
//
//===----------------------------------------------------------------------===//
-#include <vector>
#include "src/__support/FPUtil/bfloat16.h"
#include "src/math/fmabf16.h"
#include "test/UnitTest/FPMatcher.h"
#include "test/UnitTest/Test.h"
#include "utils/MPFRWrapper/MPFRUtils.h"
+#include <vector>
using LlvmLibcFmaBf16Test = LIBC_NAMESPACE::testing::FPTest<bfloat16>;
@@ -25,62 +25,50 @@ static constexpr uint16_t POS_STOP = 0x7f80U;
static constexpr uint16_t NEG_START = 0x8000U;
static constexpr uint16_t NEG_STOP = 0xff80U; //-inf
-//covers normal range since special cases covered in unit tests
-
-
+// covers normal range since special cases covered in unit tests
TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
-
+
std::vector<bfloat16> z_val = {
- FPBits(0x0000).get_val(),
- FPBits(0x8000).get_val(),
- FPBits(0x3f80).get_val(),
- FPBits(0xbf80).get_val(),
- FPBits::min_subnormal().get_val(),
- FPBits::max_normal().get_val(),
- FPBits::inf().get_val(),
- FPBits::quiet_nan().get_val()
- };
- for(bfloat16 z : z_val){
+ FPBits(0x0000).get_val(), FPBits(0x8000).get_val(),
+ FPBits(0x3f80).get_val(), FPBits(0xbf80).get_val(),
+ FPBits::min_subnormal().get_val(), FPBits::max_normal().get_val(),
+ FPBits::inf().get_val(), FPBits::quiet_nan().get_val()};
+ for (bfloat16 z : z_val) {
for (uint16_t v1 = POS_START; v1 <= POS_STOP; ++v1) {
- for(uint16_t v2 = POS_START; v2<= POS_STOP; v2+=256) {
-
+ for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
+
bfloat16 x = FPBits(v1).get_val();
bfloat16 y = FPBits(v2).get_val();
mpfr::TernaryInput<bfloat16> input{x, y, z};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
}
}
}
TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
-
+
std::vector<bfloat16> z_val = {
- FPBits(0x0000).get_val(),
- FPBits(0x8000).get_val(),
- FPBits(0x3f80).get_val(),
- FPBits(0xbf80).get_val(),
- FPBits::min_subnormal().get_val(),
- FPBits::max_normal().get_val(),
- FPBits::inf().get_val(),
- FPBits::quiet_nan().get_val()
- };
- for(bfloat16 z : z_val){
+ FPBits(0x0000).get_val(), FPBits(0x8000).get_val(),
+ FPBits(0x3f80).get_val(), FPBits(0xbf80).get_val(),
+ FPBits::min_subnormal().get_val(), FPBits::max_normal().get_val(),
+ FPBits::inf().get_val(), FPBits::quiet_nan().get_val()};
+ for (bfloat16 z : z_val) {
for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
- for(uint16_t v2 = NEG_START; v2<= NEG_STOP; v2+=256) {
-
+ for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
+
bfloat16 x = FPBits(v1).get_val();
bfloat16 y = FPBits(v2).get_val();
mpfr::TernaryInput<bfloat16> input{x, y, z};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
}
}
}
@@ -97,6 +85,6 @@ TEST_F(LlvmLibcFmaBf16Test, CancellationTest) {
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
}
-}
}
\ No newline at end of file
diff --git a/libc/utils/MPFRWrapper/MPFRUtils.cpp b/libc/utils/MPFRWrapper/MPFRUtils.cpp
index 98e4480543edb..a7d307b47c3e8 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.cpp
+++ b/libc/utils/MPFRWrapper/MPFRUtils.cpp
@@ -1,848 +1,848 @@
-//===-- Utils which wrap MPFR ---------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "MPFRUtils.h"
-#include "MPCommon.h"
-
-#include "src/__support/CPP/array.h"
-#include "src/__support/CPP/stringstream.h"
-#include "src/__support/FPUtil/bfloat16.h"
-#include "src/__support/FPUtil/fpbits_str.h"
-#include "src/__support/macros/config.h"
-#include "src/__support/macros/properties/types.h"
-
-namespace LIBC_NAMESPACE_DECL {
-namespace testing {
-namespace mpfr {
-namespace internal {
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-unary_operation(Operation op, InputType input, unsigned int precision,
- RoundingMode rounding) {
- MPFRNumber mpfrInput(input, precision, rounding);
- switch (op) {
- case Operation::Abs:
- return mpfrInput.abs();
- case Operation::Acos:
- return mpfrInput.acos();
- case Operation::Acosh:
- return mpfrInput.acosh();
- case Operation::Acospi:
- return mpfrInput.acospi();
- case Operation::Asin:
- return mpfrInput.asin();
- case Operation::Asinh:
- return mpfrInput.asinh();
- case Operation::Asinpi:
- return mpfrInput.asinpi();
- case Operation::Atan:
- return mpfrInput.atan();
- case Operation::Atanh:
- return mpfrInput.atanh();
- case Operation::Atanpi:
- return mpfrInput.atanpi();
- case Operation::Cbrt:
- return mpfrInput.cbrt();
- case Operation::Ceil:
- return mpfrInput.ceil();
- case Operation::Cos:
- return mpfrInput.cos();
- case Operation::Cosh:
- return mpfrInput.cosh();
- case Operation::Cospi:
- return mpfrInput.cospi();
- case Operation::Erf:
- return mpfrInput.erf();
- case Operation::Exp:
- return mpfrInput.exp();
- case Operation::Exp2:
- return mpfrInput.exp2();
- case Operation::Exp2m1:
- return mpfrInput.exp2m1();
- case Operation::Exp10:
- return mpfrInput.exp10();
- case Operation::Exp10m1:
- return mpfrInput.exp10m1();
- case Operation::Expm1:
- return mpfrInput.expm1();
- case Operation::Floor:
- return mpfrInput.floor();
- case Operation::Log:
- return mpfrInput.log();
- case Operation::Log2:
- return mpfrInput.log2();
- case Operation::Log10:
- return mpfrInput.log10();
- case Operation::Log1p:
- return mpfrInput.log1p();
- case Operation::Mod2PI:
- return mpfrInput.mod_2pi();
- case Operation::ModPIOver2:
- return mpfrInput.mod_pi_over_2();
- case Operation::ModPIOver4:
- return mpfrInput.mod_pi_over_4();
- case Operation::Round:
- return mpfrInput.round();
- case Operation::RoundEven:
- return mpfrInput.roundeven();
- case Operation::Rsqrt:
- return mpfrInput.rsqrt();
- case Operation::Sin:
- return mpfrInput.sin();
- case Operation::Sinpi:
- return mpfrInput.sinpi();
- case Operation::Sinh:
- return mpfrInput.sinh();
- case Operation::Sqrt:
- return mpfrInput.sqrt();
- case Operation::Tan:
- return mpfrInput.tan();
- case Operation::Tanh:
- return mpfrInput.tanh();
- case Operation::Tanpi:
- return mpfrInput.tanpi();
- case Operation::Trunc:
- return mpfrInput.trunc();
- default:
- __builtin_unreachable();
- }
-}
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-unary_operation_two_outputs(Operation op, InputType input, int &output,
- unsigned int precision, RoundingMode rounding) {
- MPFRNumber mpfrInput(input, precision, rounding);
- switch (op) {
- case Operation::Frexp:
- return mpfrInput.frexp(output);
- default:
- __builtin_unreachable();
- }
-}
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-binary_operation_one_output(Operation op, InputType x, InputType y,
- unsigned int precision, RoundingMode rounding) {
- MPFRNumber inputX(x, precision, rounding);
- MPFRNumber inputY(y, precision, rounding);
- switch (op) {
- case Operation::Add:
- return inputX.add(inputY);
- case Operation::Atan2:
- return inputX.atan2(inputY);
- case Operation::Div:
- return inputX.div(inputY);
- case Operation::Fmod:
- return inputX.fmod(inputY);
- case Operation::Hypot:
- return inputX.hypot(inputY);
- case Operation::Mul:
- return inputX.mul(inputY);
- case Operation::Pow:
- return inputX.pow(inputY);
- case Operation::Sub:
- return inputX.sub(inputY);
- default:
- __builtin_unreachable();
- }
-}
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-binary_operation_two_outputs(Operation op, InputType x, InputType y,
- int &output, unsigned int precision,
- RoundingMode rounding) {
- MPFRNumber inputX(x, precision, rounding);
- MPFRNumber inputY(y, precision, rounding);
- switch (op) {
- case Operation::RemQuo:
- return inputX.remquo(inputY, output);
- default:
- __builtin_unreachable();
- }
-}
-
-template <typename InputType>
-cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
-ternary_operation_one_output(Operation op, InputType x, InputType y,
- InputType z, unsigned int precision,
- RoundingMode rounding) {
- // For FMA function, we just need to compare with the mpfr_fma with the same
- // precision as InputType. Using higher precision as the intermediate results
- // to compare might incorrectly fail due to double-rounding errors.
- MPFRNumber inputX(x, precision, rounding);
- MPFRNumber inputY(y, precision, rounding);
- MPFRNumber inputZ(z, precision, rounding);
- switch (op) {
- case Operation::Fma:
- return inputX.fma(inputY, inputZ);
- default:
- __builtin_unreachable();
- }
-}
-
-// Remark: For all the explain_*_error functions, we will use std::stringstream
-// to build the complete error messages before sending it to the outstream `OS`
-// once at the end. This will stop the error messages from interleaving when
-// the tests are running concurrently.
-template <typename InputType, typename OutputType>
-void explain_unary_operation_single_output_error(Operation op, InputType input,
- OutputType matchValue,
- double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfrInput(input, precision);
- MPFRNumber mpfr_result;
- mpfr_result = unary_operation(op, input, precision, rounding);
- MPFRNumber mpfrMatchValue(matchValue);
- cpp::array<char, 1024> msg_buf;
- cpp::StringStream msg(msg_buf);
- msg << "Match value not within tolerance value of MPFR result:\n"
- << " Input decimal: " << mpfrInput.str() << '\n';
- msg << " Input bits: " << str(FPBits<InputType>(input)) << '\n';
- msg << '\n' << " Match decimal: " << mpfrMatchValue.str() << '\n';
- msg << " Match bits: " << str(FPBits<OutputType>(matchValue)) << '\n';
- msg << '\n' << " MPFR result: " << mpfr_result.str() << '\n';
- msg << " MPFR rounded: "
- << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
- msg << '\n';
- msg << " ULP error: " << mpfr_result.ulp_as_mpfr_number(matchValue).str()
- << '\n';
- if (msg.overflow())
- __builtin_unreachable();
- tlog << msg.str();
-}
-
-template void explain_unary_operation_single_output_error(Operation op, float,
- float, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op, double,
- double, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- long double,
- long double, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op, double,
- float, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- long double, float,
- double, RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- long double, double,
- double, RoundingMode);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template void explain_unary_operation_single_output_error(Operation op, float16,
- float16, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op, float,
- float16, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op, double,
- float16, double,
- RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- long double, float16,
- double, RoundingMode);
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template void explain_unary_operation_single_output_error(Operation op,
- float128, float16,
- double, RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template void explain_unary_operation_single_output_error(Operation op,
- float128, float128,
- double, RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- float128, float,
- double, RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- float128, double,
- double, RoundingMode);
-template void explain_unary_operation_single_output_error(Operation op,
- float128, long double,
- double, RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-
-template void explain_unary_operation_single_output_error(Operation op,
- bfloat16, bfloat16,
- double, RoundingMode);
-
-template <typename T>
-void explain_unary_operation_two_outputs_error(
- Operation op, T input, const BinaryOutput<T> &libc_result,
- double ulp_tolerance, RoundingMode rounding) {
- unsigned int precision = get_precision<T>(ulp_tolerance);
- MPFRNumber mpfrInput(input, precision);
- int mpfrIntResult;
- MPFRNumber mpfr_result = unary_operation_two_outputs(op, input, mpfrIntResult,
- precision, rounding);
-
- if (mpfrIntResult != libc_result.i) {
- tlog << "MPFR integral result: " << mpfrIntResult << '\n'
- << "Libc integral result: " << libc_result.i << '\n';
- } else {
- tlog << "Integral result from libc matches integral result from MPFR.\n";
- }
-
- MPFRNumber mpfrMatchValue(libc_result.f);
- tlog
- << "Libc floating point result is not within tolerance value of the MPFR "
- << "result.\n\n";
-
- tlog << " Input decimal: " << mpfrInput.str() << "\n\n";
-
- tlog << "Libc floating point value: " << mpfrMatchValue.str() << '\n';
- tlog << " Libc floating point bits: " << str(FPBits<T>(libc_result.f))
- << '\n';
- tlog << "\n\n";
-
- tlog << " MPFR result: " << mpfr_result.str() << '\n';
- tlog << " MPFR rounded: " << str(FPBits<T>(mpfr_result.as<T>()))
- << '\n';
- tlog << '\n'
- << " ULP error: "
- << mpfr_result.ulp_as_mpfr_number(libc_result.f).str() << '\n';
-}
-
-template void explain_unary_operation_two_outputs_error<float>(
- Operation, float, const BinaryOutput<float> &, double, RoundingMode);
-template void explain_unary_operation_two_outputs_error<double>(
- Operation, double, const BinaryOutput<double> &, double, RoundingMode);
-template void explain_unary_operation_two_outputs_error<long double>(
- Operation, long double, const BinaryOutput<long double> &, double,
- RoundingMode);
-
-template <typename T>
-void explain_binary_operation_two_outputs_error(
- Operation op, const BinaryInput<T> &input,
- const BinaryOutput<T> &libc_result, double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<T>(ulp_tolerance);
- MPFRNumber mpfrX(input.x, precision);
- MPFRNumber mpfrY(input.y, precision);
- int mpfrIntResult;
- MPFRNumber mpfr_result = binary_operation_two_outputs(
- op, input.x, input.y, mpfrIntResult, precision, rounding);
- MPFRNumber mpfrMatchValue(libc_result.f);
-
- tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str() << '\n'
- << "MPFR integral result: " << mpfrIntResult << '\n'
- << "Libc integral result: " << libc_result.i << '\n'
- << "Libc floating point result: " << mpfrMatchValue.str() << '\n'
- << " MPFR result: " << mpfr_result.str() << '\n';
- tlog << "Libc floating point result bits: " << str(FPBits<T>(libc_result.f))
- << '\n';
- tlog << " MPFR rounded bits: "
- << str(FPBits<T>(mpfr_result.as<T>())) << '\n';
- tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result.f).str()
- << '\n';
-}
-
-template void explain_binary_operation_two_outputs_error<float>(
- Operation, const BinaryInput<float> &, const BinaryOutput<float> &, double,
- RoundingMode);
-template void explain_binary_operation_two_outputs_error<double>(
- Operation, const BinaryInput<double> &, const BinaryOutput<double> &,
- double, RoundingMode);
-template void explain_binary_operation_two_outputs_error<long double>(
- Operation, const BinaryInput<long double> &,
- const BinaryOutput<long double> &, double, RoundingMode);
-
-template <typename InputType, typename OutputType>
-void explain_binary_operation_one_output_error(
- Operation op, const BinaryInput<InputType> &input, OutputType libc_result,
- double ulp_tolerance, RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfrX(input.x, precision);
- MPFRNumber mpfrY(input.y, precision);
- FPBits<InputType> xbits(input.x);
- FPBits<InputType> ybits(input.y);
- MPFRNumber mpfr_result =
- binary_operation_one_output(op, input.x, input.y, precision, rounding);
- MPFRNumber mpfrMatchValue(libc_result);
-
- tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str() << '\n';
- tlog << "First input bits: " << str(FPBits<InputType>(input.x)) << '\n';
- tlog << "Second input bits: " << str(FPBits<InputType>(input.y)) << '\n';
-
- tlog << "Libc result: " << mpfrMatchValue.str() << '\n'
- << "MPFR result: " << mpfr_result.str() << '\n';
- tlog << "Libc floating point result bits: "
- << str(FPBits<OutputType>(libc_result)) << '\n';
- tlog << " MPFR rounded bits: "
- << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
- tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result).str()
- << '\n';
-}
-
-template void
-explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
- float, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<double> &, float, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<double> &, double, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<long double> &, float, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<long double> &, double, double, RoundingMode);
-template void
-explain_binary_operation_one_output_error(Operation,
- const BinaryInput<long double> &,
- long double, double, RoundingMode);
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<float16> &, float16, double, RoundingMode);
-template void
-explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
- float16, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<double> &, float16, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<long double> &, float16, double, RoundingMode);
-#endif
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<float128> &, float128, double, RoundingMode);
-#endif
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<bfloat16> &, bfloat16, double, RoundingMode);
-template void
-explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
- bfloat16, double, RoundingMode);
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<double> &, bfloat16, double, RoundingMode);
-template void
-explain_binary_operation_one_output_error(Operation,
- const BinaryInput<long double> &,
- bfloat16, double, RoundingMode);
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template void explain_binary_operation_one_output_error(
- Operation, const BinaryInput<float128> &, bfloat16, double, RoundingMode);
-#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
- // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-
-template <typename InputType, typename OutputType>
-void explain_ternary_operation_one_output_error(
- Operation op, const TernaryInput<InputType> &input, OutputType libc_result,
- double ulp_tolerance, RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfrX(input.x, precision);
- MPFRNumber mpfrY(input.y, precision);
- MPFRNumber mpfrZ(input.z, precision);
- FPBits<InputType> xbits(input.x);
- FPBits<InputType> ybits(input.y);
- FPBits<InputType> zbits(input.z);
- MPFRNumber mpfr_result = ternary_operation_one_output(
- op, input.x, input.y, input.z, precision, rounding);
- MPFRNumber mpfrMatchValue(libc_result);
-
- tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str()
- << " z: " << mpfrZ.str() << '\n';
- tlog << " First input bits: " << str(FPBits<InputType>(input.x)) << '\n';
- tlog << "Second input bits: " << str(FPBits<InputType>(input.y)) << '\n';
- tlog << " Third input bits: " << str(FPBits<InputType>(input.z)) << '\n';
-
- tlog << "Libc result: " << mpfrMatchValue.str() << '\n'
- << "MPFR result: " << mpfr_result.str() << '\n';
- tlog << "Libc floating point result bits: "
- << str(FPBits<OutputType>(libc_result)) << '\n';
- tlog << " MPFR rounded bits: "
- << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
- tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result).str()
- << '\n';
-}
-
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float> &, float, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<double> &, float, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<double> &, double, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<long double> &, float, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<long double> &, double, double, RoundingMode);
-template void
-explain_ternary_operation_one_output_error(Operation,
- const TernaryInput<long double> &,
- long double, double, RoundingMode);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float16> &, float16, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float> &, float16, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<double> &, float16, double, RoundingMode);
-template void
-explain_ternary_operation_one_output_error(Operation,
- const TernaryInput<long double> &,
- float16, double, RoundingMode);
-#endif
-
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float> &, bfloat16, double, RoundingMode);
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<double> &, bfloat16, double, RoundingMode);
-template void
-explain_ternary_operation_one_output_error(Operation,
- const TernaryInput<long double> &,
- bfloat16, double, RoundingMode);
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template void explain_ternary_operation_one_output_error(
- Operation, const TernaryInput<float128> &, bfloat16, double, RoundingMode);
-#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
- // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-
-template <typename InputType, typename OutputType>
-bool compare_unary_operation_single_output(Operation op, InputType input,
- OutputType libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfr_result;
- mpfr_result = unary_operation(op, input, precision, rounding);
- double ulp = mpfr_result.ulp(libc_result);
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_unary_operation_single_output(Operation, float, float,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, double, double,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, long double,
- long double, double,
- RoundingMode);
-template bool compare_unary_operation_single_output(Operation, double, float,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, long double,
- float, double,
- RoundingMode);
-template bool compare_unary_operation_single_output(Operation, long double,
- double, double,
- RoundingMode);
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool compare_unary_operation_single_output(Operation, float16, float16,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, float, float16,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, double, float16,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, long double,
- float16, double,
- RoundingMode);
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool compare_unary_operation_single_output(Operation, float128,
- float16, double,
- RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool compare_unary_operation_single_output(Operation, float128,
- float128, double,
- RoundingMode);
-template bool compare_unary_operation_single_output(Operation, float128, float,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, float128, double,
- double, RoundingMode);
-template bool compare_unary_operation_single_output(Operation, float128,
- long double, double,
- RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool compare_unary_operation_single_output(Operation, bfloat16,
- bfloat16, double,
- RoundingMode);
-
-template <typename T>
-bool compare_unary_operation_two_outputs(Operation op, T input,
- const BinaryOutput<T> &libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- int mpfrIntResult;
- unsigned int precision = get_precision<T>(ulp_tolerance);
- MPFRNumber mpfr_result = unary_operation_two_outputs(op, input, mpfrIntResult,
- precision, rounding);
- double ulp = mpfr_result.ulp(libc_result.f);
-
- if (mpfrIntResult != libc_result.i)
- return false;
-
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_unary_operation_two_outputs<float>(
- Operation, float, const BinaryOutput<float> &, double, RoundingMode);
-template bool compare_unary_operation_two_outputs<double>(
- Operation, double, const BinaryOutput<double> &, double, RoundingMode);
-template bool compare_unary_operation_two_outputs<long double>(
- Operation, long double, const BinaryOutput<long double> &, double,
- RoundingMode);
-
-template <typename T>
-bool compare_binary_operation_two_outputs(Operation op,
- const BinaryInput<T> &input,
- const BinaryOutput<T> &libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- int mpfrIntResult;
- unsigned int precision = get_precision<T>(ulp_tolerance);
- MPFRNumber mpfr_result = binary_operation_two_outputs(
- op, input.x, input.y, mpfrIntResult, precision, rounding);
- double ulp = mpfr_result.ulp(libc_result.f);
-
- if (mpfrIntResult != libc_result.i) {
- if (op == Operation::RemQuo) {
- if ((0x7 & mpfrIntResult) != (0x7 & libc_result.i))
- return false;
- } else {
- return false;
- }
- }
-
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_binary_operation_two_outputs<float>(
- Operation, const BinaryInput<float> &, const BinaryOutput<float> &, double,
- RoundingMode);
-template bool compare_binary_operation_two_outputs<double>(
- Operation, const BinaryInput<double> &, const BinaryOutput<double> &,
- double, RoundingMode);
-template bool compare_binary_operation_two_outputs<long double>(
- Operation, const BinaryInput<long double> &,
- const BinaryOutput<long double> &, double, RoundingMode);
-
-template <typename InputType, typename OutputType>
-bool compare_binary_operation_one_output(Operation op,
- const BinaryInput<InputType> &input,
- OutputType libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfr_result =
- binary_operation_one_output(op, input.x, input.y, precision, rounding);
- double ulp = mpfr_result.ulp(libc_result);
-
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float> &,
- float, double, RoundingMode);
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<double> &,
- double, double, RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- float, double, RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- double, double, RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- long double, double, RoundingMode);
-
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<double> &,
- float, double, RoundingMode);
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float16> &,
- float16, double,
- RoundingMode);
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float> &,
- float16, double,
- RoundingMode);
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<double> &,
- float16, double,
- RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- float16, double, RoundingMode);
-#endif
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float128> &,
- float128, double,
- RoundingMode);
-#endif
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<bfloat16> &,
- bfloat16, double,
- RoundingMode);
-
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float> &,
- bfloat16, double,
- RoundingMode);
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<double> &,
- bfloat16, double,
- RoundingMode);
-template bool
-compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
- bfloat16, double, RoundingMode);
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template bool compare_binary_operation_one_output(Operation,
- const BinaryInput<float128> &,
- bfloat16, double,
- RoundingMode);
-#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
- // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template <typename InputType, typename OutputType>
-bool compare_ternary_operation_one_output(Operation op,
- const TernaryInput<InputType> &input,
- OutputType libc_result,
- double ulp_tolerance,
- RoundingMode rounding) {
- unsigned int precision = get_precision<InputType>(ulp_tolerance);
- MPFRNumber mpfr_result = ternary_operation_one_output(
- op, input.x, input.y, input.z, precision, rounding);
- double ulp = mpfr_result.ulp(libc_result);
-
- return (ulp <= ulp_tolerance);
-}
-
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<float> &,
- float, double, RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<double> &,
- float, double, RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<double> &,
- double, double,
- RoundingMode);
-template bool compare_ternary_operation_one_output(
- Operation, const TernaryInput<long double> &, float, double, RoundingMode);
-template bool compare_ternary_operation_one_output(
- Operation, const TernaryInput<long double> &, double, double, RoundingMode);
-template bool
-compare_ternary_operation_one_output(Operation,
- const TernaryInput<long double> &,
- long double, double, RoundingMode);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool
-compare_ternary_operation_one_output(Operation, const TernaryInput<float16> &,
- float16, double, RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<float> &,
- float16, double,
- RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<double> &,
- float16, double,
- RoundingMode);
-template bool
-compare_ternary_operation_one_output(Operation,
- const TernaryInput<long double> &, float16,
- double, RoundingMode);
-#endif
-
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<float> &,
- bfloat16, double,
- RoundingMode);
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<double> &,
- bfloat16, double,
- RoundingMode);
-template bool
-compare_ternary_operation_one_output(Operation,
- const TernaryInput<long double> &,
- bfloat16, double, RoundingMode);
-
-#if defined(LIBC_TYPES_HAS_FLOAT128) && \
- defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-template bool
-compare_ternary_operation_one_output(Operation, const TernaryInput<float128> &,
- bfloat16, double, RoundingMode);
-#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
- // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
-
-} // namespace internal
-
-template <typename T> bool round_to_long(T x, long &result) {
- MPFRNumber mpfr(x);
- return mpfr.round_to_long(result);
-}
-
-template bool round_to_long<float>(float, long &);
-template bool round_to_long<double>(double, long &);
-template bool round_to_long<long double>(long double, long &);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool round_to_long<float16>(float16, long &);
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool round_to_long<float128>(float128, long &);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-
-template bool round_to_long<bfloat16>(bfloat16, long &);
-
-template <typename T> bool round_to_long(T x, RoundingMode mode, long &result) {
- MPFRNumber mpfr(x);
- return mpfr.round_to_long(get_mpfr_rounding_mode(mode), result);
-}
-
-template bool round_to_long<float>(float, RoundingMode, long &);
-template bool round_to_long<double>(double, RoundingMode, long &);
-template bool round_to_long<long double>(long double, RoundingMode, long &);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template bool round_to_long<float16>(float16, RoundingMode, long &);
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template bool round_to_long<float128>(float128, RoundingMode, long &);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-
-template bool round_to_long<bfloat16>(bfloat16, RoundingMode, long &);
-
-template <typename T> T round(T x, RoundingMode mode) {
- MPFRNumber mpfr(x);
- MPFRNumber result = mpfr.rint(get_mpfr_rounding_mode(mode));
- return result.as<T>();
-}
-
-template float round<float>(float, RoundingMode);
-template double round<double>(double, RoundingMode);
-template long double round<long double>(long double, RoundingMode);
-
-#ifdef LIBC_TYPES_HAS_FLOAT16
-template float16 round<float16>(float16, RoundingMode);
-#endif // LIBC_TYPES_HAS_FLOAT16
-
-#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-template float128 round<float128>(float128, RoundingMode);
-#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
-
-template bfloat16 round<bfloat16>(bfloat16, RoundingMode);
-
-} // namespace mpfr
-} // namespace testing
-} // namespace LIBC_NAMESPACE_DECL
+//===-- Utils which wrap MPFR ---------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "MPFRUtils.h"
+#include "MPCommon.h"
+
+#include "src/__support/CPP/array.h"
+#include "src/__support/CPP/stringstream.h"
+#include "src/__support/FPUtil/bfloat16.h"
+#include "src/__support/FPUtil/fpbits_str.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/properties/types.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace testing {
+namespace mpfr {
+namespace internal {
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+unary_operation(Operation op, InputType input, unsigned int precision,
+ RoundingMode rounding) {
+ MPFRNumber mpfrInput(input, precision, rounding);
+ switch (op) {
+ case Operation::Abs:
+ return mpfrInput.abs();
+ case Operation::Acos:
+ return mpfrInput.acos();
+ case Operation::Acosh:
+ return mpfrInput.acosh();
+ case Operation::Acospi:
+ return mpfrInput.acospi();
+ case Operation::Asin:
+ return mpfrInput.asin();
+ case Operation::Asinh:
+ return mpfrInput.asinh();
+ case Operation::Asinpi:
+ return mpfrInput.asinpi();
+ case Operation::Atan:
+ return mpfrInput.atan();
+ case Operation::Atanh:
+ return mpfrInput.atanh();
+ case Operation::Atanpi:
+ return mpfrInput.atanpi();
+ case Operation::Cbrt:
+ return mpfrInput.cbrt();
+ case Operation::Ceil:
+ return mpfrInput.ceil();
+ case Operation::Cos:
+ return mpfrInput.cos();
+ case Operation::Cosh:
+ return mpfrInput.cosh();
+ case Operation::Cospi:
+ return mpfrInput.cospi();
+ case Operation::Erf:
+ return mpfrInput.erf();
+ case Operation::Exp:
+ return mpfrInput.exp();
+ case Operation::Exp2:
+ return mpfrInput.exp2();
+ case Operation::Exp2m1:
+ return mpfrInput.exp2m1();
+ case Operation::Exp10:
+ return mpfrInput.exp10();
+ case Operation::Exp10m1:
+ return mpfrInput.exp10m1();
+ case Operation::Expm1:
+ return mpfrInput.expm1();
+ case Operation::Floor:
+ return mpfrInput.floor();
+ case Operation::Log:
+ return mpfrInput.log();
+ case Operation::Log2:
+ return mpfrInput.log2();
+ case Operation::Log10:
+ return mpfrInput.log10();
+ case Operation::Log1p:
+ return mpfrInput.log1p();
+ case Operation::Mod2PI:
+ return mpfrInput.mod_2pi();
+ case Operation::ModPIOver2:
+ return mpfrInput.mod_pi_over_2();
+ case Operation::ModPIOver4:
+ return mpfrInput.mod_pi_over_4();
+ case Operation::Round:
+ return mpfrInput.round();
+ case Operation::RoundEven:
+ return mpfrInput.roundeven();
+ case Operation::Rsqrt:
+ return mpfrInput.rsqrt();
+ case Operation::Sin:
+ return mpfrInput.sin();
+ case Operation::Sinpi:
+ return mpfrInput.sinpi();
+ case Operation::Sinh:
+ return mpfrInput.sinh();
+ case Operation::Sqrt:
+ return mpfrInput.sqrt();
+ case Operation::Tan:
+ return mpfrInput.tan();
+ case Operation::Tanh:
+ return mpfrInput.tanh();
+ case Operation::Tanpi:
+ return mpfrInput.tanpi();
+ case Operation::Trunc:
+ return mpfrInput.trunc();
+ default:
+ __builtin_unreachable();
+ }
+}
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+unary_operation_two_outputs(Operation op, InputType input, int &output,
+ unsigned int precision, RoundingMode rounding) {
+ MPFRNumber mpfrInput(input, precision, rounding);
+ switch (op) {
+ case Operation::Frexp:
+ return mpfrInput.frexp(output);
+ default:
+ __builtin_unreachable();
+ }
+}
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+binary_operation_one_output(Operation op, InputType x, InputType y,
+ unsigned int precision, RoundingMode rounding) {
+ MPFRNumber inputX(x, precision, rounding);
+ MPFRNumber inputY(y, precision, rounding);
+ switch (op) {
+ case Operation::Add:
+ return inputX.add(inputY);
+ case Operation::Atan2:
+ return inputX.atan2(inputY);
+ case Operation::Div:
+ return inputX.div(inputY);
+ case Operation::Fmod:
+ return inputX.fmod(inputY);
+ case Operation::Hypot:
+ return inputX.hypot(inputY);
+ case Operation::Mul:
+ return inputX.mul(inputY);
+ case Operation::Pow:
+ return inputX.pow(inputY);
+ case Operation::Sub:
+ return inputX.sub(inputY);
+ default:
+ __builtin_unreachable();
+ }
+}
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+binary_operation_two_outputs(Operation op, InputType x, InputType y,
+ int &output, unsigned int precision,
+ RoundingMode rounding) {
+ MPFRNumber inputX(x, precision, rounding);
+ MPFRNumber inputY(y, precision, rounding);
+ switch (op) {
+ case Operation::RemQuo:
+ return inputX.remquo(inputY, output);
+ default:
+ __builtin_unreachable();
+ }
+}
+
+template <typename InputType>
+cpp::enable_if_t<cpp::is_floating_point_v<InputType>, MPFRNumber>
+ternary_operation_one_output(Operation op, InputType x, InputType y,
+ InputType z, unsigned int precision,
+ RoundingMode rounding) {
+ // For FMA function, we just need to compare with the mpfr_fma with the same
+ // precision as InputType. Using higher precision as the intermediate results
+ // to compare might incorrectly fail due to double-rounding errors.
+ MPFRNumber inputX(x, precision, rounding);
+ MPFRNumber inputY(y, precision, rounding);
+ MPFRNumber inputZ(z, precision, rounding);
+ switch (op) {
+ case Operation::Fma:
+ return inputX.fma(inputY, inputZ);
+ default:
+ __builtin_unreachable();
+ }
+}
+
+// Remark: For all the explain_*_error functions, we will use std::stringstream
+// to build the complete error messages before sending it to the outstream `OS`
+// once at the end. This will stop the error messages from interleaving when
+// the tests are running concurrently.
+template <typename InputType, typename OutputType>
+void explain_unary_operation_single_output_error(Operation op, InputType input,
+ OutputType matchValue,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfrInput(input, precision);
+ MPFRNumber mpfr_result;
+ mpfr_result = unary_operation(op, input, precision, rounding);
+ MPFRNumber mpfrMatchValue(matchValue);
+ cpp::array<char, 1024> msg_buf;
+ cpp::StringStream msg(msg_buf);
+ msg << "Match value not within tolerance value of MPFR result:\n"
+ << " Input decimal: " << mpfrInput.str() << '\n';
+ msg << " Input bits: " << str(FPBits<InputType>(input)) << '\n';
+ msg << '\n' << " Match decimal: " << mpfrMatchValue.str() << '\n';
+ msg << " Match bits: " << str(FPBits<OutputType>(matchValue)) << '\n';
+ msg << '\n' << " MPFR result: " << mpfr_result.str() << '\n';
+ msg << " MPFR rounded: "
+ << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
+ msg << '\n';
+ msg << " ULP error: " << mpfr_result.ulp_as_mpfr_number(matchValue).str()
+ << '\n';
+ if (msg.overflow())
+ __builtin_unreachable();
+ tlog << msg.str();
+}
+
+template void explain_unary_operation_single_output_error(Operation op, float,
+ float, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op, double,
+ double, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ long double,
+ long double, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op, double,
+ float, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ long double, float,
+ double, RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ long double, double,
+ double, RoundingMode);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template void explain_unary_operation_single_output_error(Operation op, float16,
+ float16, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op, float,
+ float16, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op, double,
+ float16, double,
+ RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ long double, float16,
+ double, RoundingMode);
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, float16,
+ double, RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, float128,
+ double, RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, float,
+ double, RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, double,
+ double, RoundingMode);
+template void explain_unary_operation_single_output_error(Operation op,
+ float128, long double,
+ double, RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+
+template void explain_unary_operation_single_output_error(Operation op,
+ bfloat16, bfloat16,
+ double, RoundingMode);
+
+template <typename T>
+void explain_unary_operation_two_outputs_error(
+ Operation op, T input, const BinaryOutput<T> &libc_result,
+ double ulp_tolerance, RoundingMode rounding) {
+ unsigned int precision = get_precision<T>(ulp_tolerance);
+ MPFRNumber mpfrInput(input, precision);
+ int mpfrIntResult;
+ MPFRNumber mpfr_result = unary_operation_two_outputs(op, input, mpfrIntResult,
+ precision, rounding);
+
+ if (mpfrIntResult != libc_result.i) {
+ tlog << "MPFR integral result: " << mpfrIntResult << '\n'
+ << "Libc integral result: " << libc_result.i << '\n';
+ } else {
+ tlog << "Integral result from libc matches integral result from MPFR.\n";
+ }
+
+ MPFRNumber mpfrMatchValue(libc_result.f);
+ tlog
+ << "Libc floating point result is not within tolerance value of the MPFR "
+ << "result.\n\n";
+
+ tlog << " Input decimal: " << mpfrInput.str() << "\n\n";
+
+ tlog << "Libc floating point value: " << mpfrMatchValue.str() << '\n';
+ tlog << " Libc floating point bits: " << str(FPBits<T>(libc_result.f))
+ << '\n';
+ tlog << "\n\n";
+
+ tlog << " MPFR result: " << mpfr_result.str() << '\n';
+ tlog << " MPFR rounded: " << str(FPBits<T>(mpfr_result.as<T>()))
+ << '\n';
+ tlog << '\n'
+ << " ULP error: "
+ << mpfr_result.ulp_as_mpfr_number(libc_result.f).str() << '\n';
+}
+
+template void explain_unary_operation_two_outputs_error<float>(
+ Operation, float, const BinaryOutput<float> &, double, RoundingMode);
+template void explain_unary_operation_two_outputs_error<double>(
+ Operation, double, const BinaryOutput<double> &, double, RoundingMode);
+template void explain_unary_operation_two_outputs_error<long double>(
+ Operation, long double, const BinaryOutput<long double> &, double,
+ RoundingMode);
+
+template <typename T>
+void explain_binary_operation_two_outputs_error(
+ Operation op, const BinaryInput<T> &input,
+ const BinaryOutput<T> &libc_result, double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<T>(ulp_tolerance);
+ MPFRNumber mpfrX(input.x, precision);
+ MPFRNumber mpfrY(input.y, precision);
+ int mpfrIntResult;
+ MPFRNumber mpfr_result = binary_operation_two_outputs(
+ op, input.x, input.y, mpfrIntResult, precision, rounding);
+ MPFRNumber mpfrMatchValue(libc_result.f);
+
+ tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str() << '\n'
+ << "MPFR integral result: " << mpfrIntResult << '\n'
+ << "Libc integral result: " << libc_result.i << '\n'
+ << "Libc floating point result: " << mpfrMatchValue.str() << '\n'
+ << " MPFR result: " << mpfr_result.str() << '\n';
+ tlog << "Libc floating point result bits: " << str(FPBits<T>(libc_result.f))
+ << '\n';
+ tlog << " MPFR rounded bits: "
+ << str(FPBits<T>(mpfr_result.as<T>())) << '\n';
+ tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result.f).str()
+ << '\n';
+}
+
+template void explain_binary_operation_two_outputs_error<float>(
+ Operation, const BinaryInput<float> &, const BinaryOutput<float> &, double,
+ RoundingMode);
+template void explain_binary_operation_two_outputs_error<double>(
+ Operation, const BinaryInput<double> &, const BinaryOutput<double> &,
+ double, RoundingMode);
+template void explain_binary_operation_two_outputs_error<long double>(
+ Operation, const BinaryInput<long double> &,
+ const BinaryOutput<long double> &, double, RoundingMode);
+
+template <typename InputType, typename OutputType>
+void explain_binary_operation_one_output_error(
+ Operation op, const BinaryInput<InputType> &input, OutputType libc_result,
+ double ulp_tolerance, RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfrX(input.x, precision);
+ MPFRNumber mpfrY(input.y, precision);
+ FPBits<InputType> xbits(input.x);
+ FPBits<InputType> ybits(input.y);
+ MPFRNumber mpfr_result =
+ binary_operation_one_output(op, input.x, input.y, precision, rounding);
+ MPFRNumber mpfrMatchValue(libc_result);
+
+ tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str() << '\n';
+ tlog << "First input bits: " << str(FPBits<InputType>(input.x)) << '\n';
+ tlog << "Second input bits: " << str(FPBits<InputType>(input.y)) << '\n';
+
+ tlog << "Libc result: " << mpfrMatchValue.str() << '\n'
+ << "MPFR result: " << mpfr_result.str() << '\n';
+ tlog << "Libc floating point result bits: "
+ << str(FPBits<OutputType>(libc_result)) << '\n';
+ tlog << " MPFR rounded bits: "
+ << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
+ tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result).str()
+ << '\n';
+}
+
+template void
+explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
+ float, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<double> &, float, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<double> &, double, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<long double> &, float, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<long double> &, double, double, RoundingMode);
+template void
+explain_binary_operation_one_output_error(Operation,
+ const BinaryInput<long double> &,
+ long double, double, RoundingMode);
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<float16> &, float16, double, RoundingMode);
+template void
+explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
+ float16, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<double> &, float16, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<long double> &, float16, double, RoundingMode);
+#endif
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<float128> &, float128, double, RoundingMode);
+#endif
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<bfloat16> &, bfloat16, double, RoundingMode);
+template void
+explain_binary_operation_one_output_error(Operation, const BinaryInput<float> &,
+ bfloat16, double, RoundingMode);
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<double> &, bfloat16, double, RoundingMode);
+template void
+explain_binary_operation_one_output_error(Operation,
+ const BinaryInput<long double> &,
+ bfloat16, double, RoundingMode);
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template void explain_binary_operation_one_output_error(
+ Operation, const BinaryInput<float128> &, bfloat16, double, RoundingMode);
+#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
+ // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+
+template <typename InputType, typename OutputType>
+void explain_ternary_operation_one_output_error(
+ Operation op, const TernaryInput<InputType> &input, OutputType libc_result,
+ double ulp_tolerance, RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfrX(input.x, precision);
+ MPFRNumber mpfrY(input.y, precision);
+ MPFRNumber mpfrZ(input.z, precision);
+ FPBits<InputType> xbits(input.x);
+ FPBits<InputType> ybits(input.y);
+ FPBits<InputType> zbits(input.z);
+ MPFRNumber mpfr_result = ternary_operation_one_output(
+ op, input.x, input.y, input.z, precision, rounding);
+ MPFRNumber mpfrMatchValue(libc_result);
+
+ tlog << "Input decimal: x: " << mpfrX.str() << " y: " << mpfrY.str()
+ << " z: " << mpfrZ.str() << '\n';
+ tlog << " First input bits: " << str(FPBits<InputType>(input.x)) << '\n';
+ tlog << "Second input bits: " << str(FPBits<InputType>(input.y)) << '\n';
+ tlog << " Third input bits: " << str(FPBits<InputType>(input.z)) << '\n';
+
+ tlog << "Libc result: " << mpfrMatchValue.str() << '\n'
+ << "MPFR result: " << mpfr_result.str() << '\n';
+ tlog << "Libc floating point result bits: "
+ << str(FPBits<OutputType>(libc_result)) << '\n';
+ tlog << " MPFR rounded bits: "
+ << str(FPBits<OutputType>(mpfr_result.as<OutputType>())) << '\n';
+ tlog << "ULP error: " << mpfr_result.ulp_as_mpfr_number(libc_result).str()
+ << '\n';
+}
+
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float> &, float, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<double> &, float, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<double> &, double, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<long double> &, float, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<long double> &, double, double, RoundingMode);
+template void
+explain_ternary_operation_one_output_error(Operation,
+ const TernaryInput<long double> &,
+ long double, double, RoundingMode);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float16> &, float16, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float> &, float16, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<double> &, float16, double, RoundingMode);
+template void
+explain_ternary_operation_one_output_error(Operation,
+ const TernaryInput<long double> &,
+ float16, double, RoundingMode);
+#endif
+
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float> &, bfloat16, double, RoundingMode);
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<double> &, bfloat16, double, RoundingMode);
+template void
+explain_ternary_operation_one_output_error(Operation,
+ const TernaryInput<long double> &,
+ bfloat16, double, RoundingMode);
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<float128> &, bfloat16, double, RoundingMode);
+#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
+ // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+
+template <typename InputType, typename OutputType>
+bool compare_unary_operation_single_output(Operation op, InputType input,
+ OutputType libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfr_result;
+ mpfr_result = unary_operation(op, input, precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result);
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_unary_operation_single_output(Operation, float, float,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, double, double,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, long double,
+ long double, double,
+ RoundingMode);
+template bool compare_unary_operation_single_output(Operation, double, float,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, long double,
+ float, double,
+ RoundingMode);
+template bool compare_unary_operation_single_output(Operation, long double,
+ double, double,
+ RoundingMode);
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool compare_unary_operation_single_output(Operation, float16, float16,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, float, float16,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, double, float16,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, long double,
+ float16, double,
+ RoundingMode);
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool compare_unary_operation_single_output(Operation, float128,
+ float16, double,
+ RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool compare_unary_operation_single_output(Operation, float128,
+ float128, double,
+ RoundingMode);
+template bool compare_unary_operation_single_output(Operation, float128, float,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, float128, double,
+ double, RoundingMode);
+template bool compare_unary_operation_single_output(Operation, float128,
+ long double, double,
+ RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool compare_unary_operation_single_output(Operation, bfloat16,
+ bfloat16, double,
+ RoundingMode);
+
+template <typename T>
+bool compare_unary_operation_two_outputs(Operation op, T input,
+ const BinaryOutput<T> &libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ int mpfrIntResult;
+ unsigned int precision = get_precision<T>(ulp_tolerance);
+ MPFRNumber mpfr_result = unary_operation_two_outputs(op, input, mpfrIntResult,
+ precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result.f);
+
+ if (mpfrIntResult != libc_result.i)
+ return false;
+
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_unary_operation_two_outputs<float>(
+ Operation, float, const BinaryOutput<float> &, double, RoundingMode);
+template bool compare_unary_operation_two_outputs<double>(
+ Operation, double, const BinaryOutput<double> &, double, RoundingMode);
+template bool compare_unary_operation_two_outputs<long double>(
+ Operation, long double, const BinaryOutput<long double> &, double,
+ RoundingMode);
+
+template <typename T>
+bool compare_binary_operation_two_outputs(Operation op,
+ const BinaryInput<T> &input,
+ const BinaryOutput<T> &libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ int mpfrIntResult;
+ unsigned int precision = get_precision<T>(ulp_tolerance);
+ MPFRNumber mpfr_result = binary_operation_two_outputs(
+ op, input.x, input.y, mpfrIntResult, precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result.f);
+
+ if (mpfrIntResult != libc_result.i) {
+ if (op == Operation::RemQuo) {
+ if ((0x7 & mpfrIntResult) != (0x7 & libc_result.i))
+ return false;
+ } else {
+ return false;
+ }
+ }
+
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_binary_operation_two_outputs<float>(
+ Operation, const BinaryInput<float> &, const BinaryOutput<float> &, double,
+ RoundingMode);
+template bool compare_binary_operation_two_outputs<double>(
+ Operation, const BinaryInput<double> &, const BinaryOutput<double> &,
+ double, RoundingMode);
+template bool compare_binary_operation_two_outputs<long double>(
+ Operation, const BinaryInput<long double> &,
+ const BinaryOutput<long double> &, double, RoundingMode);
+
+template <typename InputType, typename OutputType>
+bool compare_binary_operation_one_output(Operation op,
+ const BinaryInput<InputType> &input,
+ OutputType libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfr_result =
+ binary_operation_one_output(op, input.x, input.y, precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result);
+
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float> &,
+ float, double, RoundingMode);
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<double> &,
+ double, double, RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ float, double, RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ double, double, RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ long double, double, RoundingMode);
+
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<double> &,
+ float, double, RoundingMode);
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float16> &,
+ float16, double,
+ RoundingMode);
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float> &,
+ float16, double,
+ RoundingMode);
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<double> &,
+ float16, double,
+ RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ float16, double, RoundingMode);
+#endif
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float128> &,
+ float128, double,
+ RoundingMode);
+#endif
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<bfloat16> &,
+ bfloat16, double,
+ RoundingMode);
+
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float> &,
+ bfloat16, double,
+ RoundingMode);
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<double> &,
+ bfloat16, double,
+ RoundingMode);
+template bool
+compare_binary_operation_one_output(Operation, const BinaryInput<long double> &,
+ bfloat16, double, RoundingMode);
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template bool compare_binary_operation_one_output(Operation,
+ const BinaryInput<float128> &,
+ bfloat16, double,
+ RoundingMode);
+#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
+ // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template <typename InputType, typename OutputType>
+bool compare_ternary_operation_one_output(Operation op,
+ const TernaryInput<InputType> &input,
+ OutputType libc_result,
+ double ulp_tolerance,
+ RoundingMode rounding) {
+ unsigned int precision = get_precision<InputType>(ulp_tolerance);
+ MPFRNumber mpfr_result = ternary_operation_one_output(
+ op, input.x, input.y, input.z, precision, rounding);
+ double ulp = mpfr_result.ulp(libc_result);
+
+ return (ulp <= ulp_tolerance);
+}
+
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<float> &,
+ float, double, RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<double> &,
+ float, double, RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<double> &,
+ double, double,
+ RoundingMode);
+template bool compare_ternary_operation_one_output(
+ Operation, const TernaryInput<long double> &, float, double, RoundingMode);
+template bool compare_ternary_operation_one_output(
+ Operation, const TernaryInput<long double> &, double, double, RoundingMode);
+template bool
+compare_ternary_operation_one_output(Operation,
+ const TernaryInput<long double> &,
+ long double, double, RoundingMode);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool
+compare_ternary_operation_one_output(Operation, const TernaryInput<float16> &,
+ float16, double, RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<float> &,
+ float16, double,
+ RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<double> &,
+ float16, double,
+ RoundingMode);
+template bool
+compare_ternary_operation_one_output(Operation,
+ const TernaryInput<long double> &, float16,
+ double, RoundingMode);
+#endif
+
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<float> &,
+ bfloat16, double,
+ RoundingMode);
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<double> &,
+ bfloat16, double,
+ RoundingMode);
+template bool
+compare_ternary_operation_one_output(Operation,
+ const TernaryInput<long double> &,
+ bfloat16, double, RoundingMode);
+
+#if defined(LIBC_TYPES_HAS_FLOAT128) && \
+ defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+template bool
+compare_ternary_operation_one_output(Operation, const TernaryInput<float128> &,
+ bfloat16, double, RoundingMode);
+#endif // defined(LIBC_TYPES_HAS_FLOAT128) &&
+ // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE)
+
+} // namespace internal
+
+template <typename T> bool round_to_long(T x, long &result) {
+ MPFRNumber mpfr(x);
+ return mpfr.round_to_long(result);
+}
+
+template bool round_to_long<float>(float, long &);
+template bool round_to_long<double>(double, long &);
+template bool round_to_long<long double>(long double, long &);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool round_to_long<float16>(float16, long &);
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool round_to_long<float128>(float128, long &);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+
+template bool round_to_long<bfloat16>(bfloat16, long &);
+
+template <typename T> bool round_to_long(T x, RoundingMode mode, long &result) {
+ MPFRNumber mpfr(x);
+ return mpfr.round_to_long(get_mpfr_rounding_mode(mode), result);
+}
+
+template bool round_to_long<float>(float, RoundingMode, long &);
+template bool round_to_long<double>(double, RoundingMode, long &);
+template bool round_to_long<long double>(long double, RoundingMode, long &);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template bool round_to_long<float16>(float16, RoundingMode, long &);
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template bool round_to_long<float128>(float128, RoundingMode, long &);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+
+template bool round_to_long<bfloat16>(bfloat16, RoundingMode, long &);
+
+template <typename T> T round(T x, RoundingMode mode) {
+ MPFRNumber mpfr(x);
+ MPFRNumber result = mpfr.rint(get_mpfr_rounding_mode(mode));
+ return result.as<T>();
+}
+
+template float round<float>(float, RoundingMode);
+template double round<double>(double, RoundingMode);
+template long double round<long double>(long double, RoundingMode);
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+template float16 round<float16>(float16, RoundingMode);
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#ifdef LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+template float128 round<float128>(float128, RoundingMode);
+#endif // LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE
+
+template bfloat16 round<bfloat16>(bfloat16, RoundingMode);
+
+} // namespace mpfr
+} // namespace testing
+} // namespace LIBC_NAMESPACE_DECL
>From 42c5ec9defa8aab7c0184ff6021a3259d083eea4 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 21 Feb 2026 18:04:45 +0530
Subject: [PATCH 10/43] lf2
---
libc/test/src/math/sqrt_test.cpp | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/libc/test/src/math/sqrt_test.cpp b/libc/test/src/math/sqrt_test.cpp
index 3eebc38fe5f4d..1551b31d6f715 100644
--- a/libc/test/src/math/sqrt_test.cpp
+++ b/libc/test/src/math/sqrt_test.cpp
@@ -1,13 +1,13 @@
-//===-- Unittests for sqrt ------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "SqrtTest.h"
-
-#include "src/math/sqrt.h"
-
-LIST_SQRT_TESTS(double, LIBC_NAMESPACE::sqrt)
+//===-- Unittests for sqrt ------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "SqrtTest.h"
+
+#include "src/math/sqrt.h"
+
+LIST_SQRT_TESTS(double, LIBC_NAMESPACE::sqrt)
>From 9048a292d41c12687187f818599f372cd92c2604 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 21 Feb 2026 19:26:53 +0530
Subject: [PATCH 11/43] fixing CMAKE errors
---
libc/src/math/generic/CMakeLists.txt | 2 +-
libc/test/src/math/CMakeLists.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt
index 5768defa013ff..2caeeac0ed773 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -4554,7 +4554,7 @@ add_entrypoint_object(
DEPENDS
libc.src.__support.common
libc.src.__support.FPUtil.bfloat16
- libc.src.__support.FPUtil.FMA
+ libc.src.__support.FPUtil.fma
libc.src.__support.macros.config
libc.src.__support.macros.properties.types
)
diff --git a/libc/test/src/math/CMakeLists.txt b/libc/test/src/math/CMakeLists.txt
index abfd40f98a29a..d6c622f979a1b 100644
--- a/libc/test/src/math/CMakeLists.txt
+++ b/libc/test/src/math/CMakeLists.txt
@@ -1994,7 +1994,7 @@ add_fp_unittest(
DEPENDS
libc.src.math.fmabf16
libc.src.stdlib.rand
- libc.src.stdlib.srandq
+ libc.src.stdlib.srand
libc.src.__support.FPUtil.bfloat16
)
>From 6d6f4532b56ccf72174622ffc6a4ec4088604dfc Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sun, 22 Feb 2026 17:56:00 +0530
Subject: [PATCH 12/43] testing for *= if req
---
libc/src/__support/FPUtil/bfloat16.h | 247 ++++++++++++++-------------
1 file changed, 126 insertions(+), 121 deletions(-)
diff --git a/libc/src/__support/FPUtil/bfloat16.h b/libc/src/__support/FPUtil/bfloat16.h
index 13e151208567d..7f340bcef1c89 100644
--- a/libc/src/__support/FPUtil/bfloat16.h
+++ b/libc/src/__support/FPUtil/bfloat16.h
@@ -1,121 +1,126 @@
-//===-- Definition of bfloat16 data type. -----------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
-#define LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
-
-#include "hdr/stdint_proxy.h"
-#include "src/__support/CPP/bit.h"
-#include "src/__support/CPP/type_traits.h"
-#include "src/__support/FPUtil/cast.h"
-#include "src/__support/FPUtil/comparison_operations.h"
-#include "src/__support/FPUtil/dyadic_float.h"
-#include "src/__support/FPUtil/generic/add_sub.h"
-#include "src/__support/FPUtil/generic/div.h"
-#include "src/__support/FPUtil/generic/mul.h"
-#include "src/__support/macros/config.h"
-#include "src/__support/macros/properties/types.h"
-
-namespace LIBC_NAMESPACE_DECL {
-namespace fputil {
-
-struct BFloat16 {
- uint16_t bits;
-
- LIBC_INLINE BFloat16() = default;
-
- template <typename T>
- LIBC_INLINE constexpr explicit BFloat16(T value)
- : bits(static_cast<uint16_t>(0U)) {
- if constexpr (cpp::is_floating_point_v<T>) {
- bits = fputil::cast<bfloat16>(value).bits;
- } else if constexpr (cpp::is_integral_v<T>) {
- Sign sign = Sign::POS;
-
- if constexpr (cpp::is_signed_v<T>) {
- if (value < 0) {
- sign = Sign::NEG;
- value = -value;
- }
- }
-
- fputil::DyadicFloat<cpp::numeric_limits<cpp::make_unsigned_t<T>>::digits>
- xd(sign, 0, value);
- bits = xd.template as<bfloat16, /*ShouldSignalExceptions=*/true>().bits;
-
- } else if constexpr (cpp::is_convertible_v<T, BFloat16>) {
- bits = value.operator BFloat16().bits;
- } else {
- bits = fputil::cast<bfloat16>(static_cast<float>(value)).bits;
- }
- }
-
- template <cpp::enable_if_t<fputil::get_fp_type<float>() ==
- fputil::FPType::IEEE754_Binary32,
- int> = 0>
- LIBC_INLINE constexpr operator float() const {
- uint32_t x_bits = static_cast<uint32_t>(bits) << 16U;
- return cpp::bit_cast<float>(x_bits);
- }
-
- template <typename T, cpp::enable_if_t<cpp::is_integral_v<T>, int> = 0>
- LIBC_INLINE constexpr explicit operator T() const {
- return static_cast<T>(static_cast<float>(*this));
- }
-
- LIBC_INLINE bool operator==(BFloat16 other) const {
- return fputil::equals(*this, other);
- }
-
- LIBC_INLINE bool operator!=(BFloat16 other) const {
- return !fputil::equals(*this, other);
- }
-
- LIBC_INLINE bool operator<(BFloat16 other) const {
- return fputil::less_than(*this, other);
- }
-
- LIBC_INLINE bool operator<=(BFloat16 other) const {
- return fputil::less_than_or_equals(*this, other);
- }
-
- LIBC_INLINE bool operator>(BFloat16 other) const {
- return fputil::greater_than(*this, other);
- }
-
- LIBC_INLINE bool operator>=(BFloat16 other) const {
- return fputil::greater_than_or_equals(*this, other);
- }
-
- LIBC_INLINE constexpr BFloat16 operator-() const {
- fputil::FPBits<bfloat16> result(*this);
- result.set_sign(result.is_pos() ? Sign::NEG : Sign::POS);
- return result.get_val();
- }
-
- LIBC_INLINE BFloat16 operator+(BFloat16 other) const {
- return fputil::generic::add<BFloat16>(*this, other);
- }
-
- LIBC_INLINE BFloat16 operator-(BFloat16 other) const {
- return fputil::generic::sub<BFloat16>(*this, other);
- }
-
- LIBC_INLINE BFloat16 operator*(BFloat16 other) const {
- return fputil::generic::mul<bfloat16>(*this, other);
- }
-
- LIBC_INLINE BFloat16 operator/(BFloat16 other) const {
- return fputil::generic::div<bfloat16>(*this, other);
- }
-}; // struct BFloat16
-
-} // namespace fputil
-} // namespace LIBC_NAMESPACE_DECL
-
-#endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
+//===-- Definition of bfloat16 data type. -----------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
+#define LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
+
+#include "hdr/stdint_proxy.h"
+#include "src/__support/CPP/bit.h"
+#include "src/__support/CPP/type_traits.h"
+#include "src/__support/FPUtil/cast.h"
+#include "src/__support/FPUtil/comparison_operations.h"
+#include "src/__support/FPUtil/dyadic_float.h"
+#include "src/__support/FPUtil/generic/add_sub.h"
+#include "src/__support/FPUtil/generic/div.h"
+#include "src/__support/FPUtil/generic/mul.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/properties/types.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
+
+struct BFloat16 {
+ uint16_t bits;
+
+ LIBC_INLINE BFloat16() = default;
+
+ template <typename T>
+ LIBC_INLINE constexpr explicit BFloat16(T value)
+ : bits(static_cast<uint16_t>(0U)) {
+ if constexpr (cpp::is_floating_point_v<T>) {
+ bits = fputil::cast<bfloat16>(value).bits;
+ } else if constexpr (cpp::is_integral_v<T>) {
+ Sign sign = Sign::POS;
+
+ if constexpr (cpp::is_signed_v<T>) {
+ if (value < 0) {
+ sign = Sign::NEG;
+ value = -value;
+ }
+ }
+
+ fputil::DyadicFloat<cpp::numeric_limits<cpp::make_unsigned_t<T>>::digits>
+ xd(sign, 0, value);
+ bits = xd.template as<bfloat16, /*ShouldSignalExceptions=*/true>().bits;
+
+ } else if constexpr (cpp::is_convertible_v<T, BFloat16>) {
+ bits = value.operator BFloat16().bits;
+ } else {
+ bits = fputil::cast<bfloat16>(static_cast<float>(value)).bits;
+ }
+ }
+
+ template <cpp::enable_if_t<fputil::get_fp_type<float>() ==
+ fputil::FPType::IEEE754_Binary32,
+ int> = 0>
+ LIBC_INLINE constexpr operator float() const {
+ uint32_t x_bits = static_cast<uint32_t>(bits) << 16U;
+ return cpp::bit_cast<float>(x_bits);
+ }
+
+ template <typename T, cpp::enable_if_t<cpp::is_integral_v<T>, int> = 0>
+ LIBC_INLINE constexpr explicit operator T() const {
+ return static_cast<T>(static_cast<float>(*this));
+ }
+
+ LIBC_INLINE bool operator==(BFloat16 other) const {
+ return fputil::equals(*this, other);
+ }
+
+ LIBC_INLINE bool operator!=(BFloat16 other) const {
+ return !fputil::equals(*this, other);
+ }
+
+ LIBC_INLINE bool operator<(BFloat16 other) const {
+ return fputil::less_than(*this, other);
+ }
+
+ LIBC_INLINE bool operator<=(BFloat16 other) const {
+ return fputil::less_than_or_equals(*this, other);
+ }
+
+ LIBC_INLINE bool operator>(BFloat16 other) const {
+ return fputil::greater_than(*this, other);
+ }
+
+ LIBC_INLINE bool operator>=(BFloat16 other) const {
+ return fputil::greater_than_or_equals(*this, other);
+ }
+
+ LIBC_INLINE constexpr BFloat16 operator-() const {
+ fputil::FPBits<bfloat16> result(*this);
+ result.set_sign(result.is_pos() ? Sign::NEG : Sign::POS);
+ return result.get_val();
+ }
+
+ LIBC_INLINE BFloat16 operator+(BFloat16 other) const {
+ return fputil::generic::add<BFloat16>(*this, other);
+ }
+
+ LIBC_INLINE BFloat16 operator-(BFloat16 other) const {
+ return fputil::generic::sub<BFloat16>(*this, other);
+ }
+
+ LIBC_INLINE BFloat16 operator*(BFloat16 other) const {
+ return fputil::generic::mul<bfloat16>(*this, other);
+ }
+
+ LIBC_INLINE BFloat16 operator/(BFloat16 other) const {
+ return fputil::generic::div<bfloat16>(*this, other);
+ }
+
+ LIBC_INLINE BFloat16 &operator*=(const BFloat16 &other) {
+ *this = *this * other;
+ return *this;
+ }
+}; // struct BFloat16
+
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
>From 0c80d8ac06db4612db296063cee4ff34906cae9b Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sun, 22 Feb 2026 18:04:18 +0530
Subject: [PATCH 13/43] unsigned int
---
libc/test/src/math/fmabf16_test.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 431fa36864a57..190496dd4f577 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -30,8 +30,8 @@ static constexpr uint16_t NEG_STOP = 0xff80U; //-inf
TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
std::vector<bfloat16> z_val = {
- FPBits(0x0000).get_val(), FPBits(0x8000).get_val(),
- FPBits(0x3f80).get_val(), FPBits(0xbf80).get_val(),
+ FPBits(0x0000U).get_val(), FPBits(0x8000U).get_val(),
+ FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(),
FPBits::min_subnormal().get_val(), FPBits::max_normal().get_val(),
FPBits::inf().get_val(), FPBits::quiet_nan().get_val()};
for (bfloat16 z : z_val) {
@@ -53,8 +53,8 @@ TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
std::vector<bfloat16> z_val = {
- FPBits(0x0000).get_val(), FPBits(0x8000).get_val(),
- FPBits(0x3f80).get_val(), FPBits(0xbf80).get_val(),
+ FPBits(0x0000U).get_val(), FPBits(0x8000U).get_val(),
+ FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(),
FPBits::min_subnormal().get_val(), FPBits::max_normal().get_val(),
FPBits::inf().get_val(), FPBits::quiet_nan().get_val()};
for (bfloat16 z : z_val) {
>From e8734a6e8ab80210dfc825c99bd5477127d4e97b Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sun, 22 Feb 2026 18:10:56 +0530
Subject: [PATCH 14/43] shifting to only checking +0 and -0 along with -x*y
---
libc/test/src/math/fmabf16_test.cpp | 22 +++++++---------------
1 file changed, 7 insertions(+), 15 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 190496dd4f577..c10df50c0ffc6 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -29,40 +29,32 @@ static constexpr uint16_t NEG_STOP = 0xff80U; //-inf
TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
- std::vector<bfloat16> z_val = {
- FPBits(0x0000U).get_val(), FPBits(0x8000U).get_val(),
- FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(),
- FPBits::min_subnormal().get_val(), FPBits::max_normal().get_val(),
- FPBits::inf().get_val(), FPBits::quiet_nan().get_val()};
- for (bfloat16 z : z_val) {
+
for (uint16_t v1 = POS_START; v1 <= POS_STOP; ++v1) {
for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
bfloat16 x = FPBits(v1).get_val();
bfloat16 y = FPBits(v2).get_val();
-
+ bfloat16 z = FPBits(POS_START).get_val();
+
mpfr::TernaryInput<bfloat16> input{x, y, z};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
}
- }
+
}
TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
- std::vector<bfloat16> z_val = {
- FPBits(0x0000U).get_val(), FPBits(0x8000U).get_val(),
- FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(),
- FPBits::min_subnormal().get_val(), FPBits::max_normal().get_val(),
- FPBits::inf().get_val(), FPBits::quiet_nan().get_val()};
- for (bfloat16 z : z_val) {
+ bfloat16 z =
for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
bfloat16 x = FPBits(v1).get_val();
bfloat16 y = FPBits(v2).get_val();
+ bfloat16 z = FPBits(NEG_START).get_val();
mpfr::TernaryInput<bfloat16> input{x, y, z};
@@ -70,7 +62,7 @@ TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
}
- }
+
}
TEST_F(LlvmLibcFmaBf16Test, CancellationTest) {
>From 05733ad19d623128d460ce4e2194a60164e88d51 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sun, 22 Feb 2026 18:41:08 +0530
Subject: [PATCH 15/43] testing for special num
---
libc/src/__support/FPUtil/generic/add_sub.h | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/libc/src/__support/FPUtil/generic/add_sub.h b/libc/src/__support/FPUtil/generic/add_sub.h
index b2e9d81f4774c..0d7aee37cee5e 100644
--- a/libc/src/__support/FPUtil/generic/add_sub.h
+++ b/libc/src/__support/FPUtil/generic/add_sub.h
@@ -96,11 +96,15 @@ add_or_sub(InType x, InType y) {
if (x_bits.is_zero()) {
if (y_bits.is_zero()) {
- switch (quick_get_round()) {
- case FE_DOWNWARD:
- return OutFPBits::zero(Sign::NEG).get_val();
- default:
- return OutFPBits::zero(Sign::POS).get_val();
+ if (is_effectively_add) {
+ return OutFPBits::zero(x_bits.sign()).get_val();
+ } else {
+ switch (quick_get_round()) {
+ case FE_DOWNWARD:
+ return OutFPBits::zero(Sign::NEG).get_val();
+ default:
+ return OutFPBits::zero(Sign::POS).get_val();
+ }
}
}
>From 8442d0224ea214443d673a9dacd0ec588ec26ca0 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sun, 22 Feb 2026 18:54:09 +0530
Subject: [PATCH 16/43] syn err
---
libc/test/src/math/fmabf16_test.cpp | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index c10df50c0ffc6..a2241be0f568c 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -47,9 +47,7 @@ TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
}
TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
-
- bfloat16 z =
- for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
+ for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
bfloat16 x = FPBits(v1).get_val();
@@ -79,4 +77,4 @@ TEST_F(LlvmLibcFmaBf16Test, CancellationTest) {
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
}
-}
\ No newline at end of file
+}
>From 05d31a9303cf1be8c2861b501347f0b70b4c6a62 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sun, 22 Feb 2026 19:03:41 +0530
Subject: [PATCH 17/43] testing terney for bfloat16-bfloat16
---
libc/utils/MPFRWrapper/MPFRUtils.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libc/utils/MPFRWrapper/MPFRUtils.cpp b/libc/utils/MPFRWrapper/MPFRUtils.cpp
index a7d307b47c3e8..22617c0ee3f99 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.cpp
+++ b/libc/utils/MPFRWrapper/MPFRUtils.cpp
@@ -496,6 +496,8 @@ explain_ternary_operation_one_output_error(Operation,
float16, double, RoundingMode);
#endif
+template void explain_ternary_operation_one_output_error(
+ Operation, const TernaryInput<bfloat16> &, bfloat16, double, RoundingMode);
template void explain_ternary_operation_one_output_error(
Operation, const TernaryInput<float> &, bfloat16, double, RoundingMode);
template void explain_ternary_operation_one_output_error(
@@ -762,6 +764,10 @@ compare_ternary_operation_one_output(Operation,
double, RoundingMode);
#endif
+template bool compare_ternary_operation_one_output(Operation,
+ const TernaryInput<bfloat16> &,
+ bfloat16, double,
+ RoundingMode);
template bool compare_ternary_operation_one_output(Operation,
const TernaryInput<float> &,
bfloat16, double,
>From a5424ba1844853668d82654af87d00b463514861 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sun, 22 Feb 2026 20:52:35 +0530
Subject: [PATCH 18/43] removed -x*y test ( to be added )
---
libc/test/src/math/fmabf16_test.cpp | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index a2241be0f568c..68ee2208beb1f 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -25,8 +25,6 @@ static constexpr uint16_t POS_STOP = 0x7f80U;
static constexpr uint16_t NEG_START = 0x8000U;
static constexpr uint16_t NEG_STOP = 0xff80U; //-inf
-// covers normal range since special cases covered in unit tests
-
TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
@@ -61,20 +59,4 @@ TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
}
}
-}
-TEST_F(LlvmLibcFmaBf16Test, CancellationTest) {
-
- for (uint16_t v1 = 0; v1 <= 0xFFFF; v1 += 13) {
- for (uint16_t v2 = 0; v2 <= 0xFFFF; v2 += 17) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- bfloat16 z = -(x * y);
-
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- }
-}
+}
\ No newline at end of file
>From 361e0136ad9971ca7ce5ec1937a150609ea403e4 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 07:04:29 +0530
Subject: [PATCH 19/43] EOF
---
libc/src/__support/FPUtil/bfloat16.h | 252 +++++++++++++--------------
libc/test/src/math/fmabf16_test.cpp | 35 ++++
2 files changed, 161 insertions(+), 126 deletions(-)
diff --git a/libc/src/__support/FPUtil/bfloat16.h b/libc/src/__support/FPUtil/bfloat16.h
index 7f340bcef1c89..4629a3d950290 100644
--- a/libc/src/__support/FPUtil/bfloat16.h
+++ b/libc/src/__support/FPUtil/bfloat16.h
@@ -1,126 +1,126 @@
-//===-- Definition of bfloat16 data type. -----------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
-#define LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
-
-#include "hdr/stdint_proxy.h"
-#include "src/__support/CPP/bit.h"
-#include "src/__support/CPP/type_traits.h"
-#include "src/__support/FPUtil/cast.h"
-#include "src/__support/FPUtil/comparison_operations.h"
-#include "src/__support/FPUtil/dyadic_float.h"
-#include "src/__support/FPUtil/generic/add_sub.h"
-#include "src/__support/FPUtil/generic/div.h"
-#include "src/__support/FPUtil/generic/mul.h"
-#include "src/__support/macros/config.h"
-#include "src/__support/macros/properties/types.h"
-
-namespace LIBC_NAMESPACE_DECL {
-namespace fputil {
-
-struct BFloat16 {
- uint16_t bits;
-
- LIBC_INLINE BFloat16() = default;
-
- template <typename T>
- LIBC_INLINE constexpr explicit BFloat16(T value)
- : bits(static_cast<uint16_t>(0U)) {
- if constexpr (cpp::is_floating_point_v<T>) {
- bits = fputil::cast<bfloat16>(value).bits;
- } else if constexpr (cpp::is_integral_v<T>) {
- Sign sign = Sign::POS;
-
- if constexpr (cpp::is_signed_v<T>) {
- if (value < 0) {
- sign = Sign::NEG;
- value = -value;
- }
- }
-
- fputil::DyadicFloat<cpp::numeric_limits<cpp::make_unsigned_t<T>>::digits>
- xd(sign, 0, value);
- bits = xd.template as<bfloat16, /*ShouldSignalExceptions=*/true>().bits;
-
- } else if constexpr (cpp::is_convertible_v<T, BFloat16>) {
- bits = value.operator BFloat16().bits;
- } else {
- bits = fputil::cast<bfloat16>(static_cast<float>(value)).bits;
- }
- }
-
- template <cpp::enable_if_t<fputil::get_fp_type<float>() ==
- fputil::FPType::IEEE754_Binary32,
- int> = 0>
- LIBC_INLINE constexpr operator float() const {
- uint32_t x_bits = static_cast<uint32_t>(bits) << 16U;
- return cpp::bit_cast<float>(x_bits);
- }
-
- template <typename T, cpp::enable_if_t<cpp::is_integral_v<T>, int> = 0>
- LIBC_INLINE constexpr explicit operator T() const {
- return static_cast<T>(static_cast<float>(*this));
- }
-
- LIBC_INLINE bool operator==(BFloat16 other) const {
- return fputil::equals(*this, other);
- }
-
- LIBC_INLINE bool operator!=(BFloat16 other) const {
- return !fputil::equals(*this, other);
- }
-
- LIBC_INLINE bool operator<(BFloat16 other) const {
- return fputil::less_than(*this, other);
- }
-
- LIBC_INLINE bool operator<=(BFloat16 other) const {
- return fputil::less_than_or_equals(*this, other);
- }
-
- LIBC_INLINE bool operator>(BFloat16 other) const {
- return fputil::greater_than(*this, other);
- }
-
- LIBC_INLINE bool operator>=(BFloat16 other) const {
- return fputil::greater_than_or_equals(*this, other);
- }
-
- LIBC_INLINE constexpr BFloat16 operator-() const {
- fputil::FPBits<bfloat16> result(*this);
- result.set_sign(result.is_pos() ? Sign::NEG : Sign::POS);
- return result.get_val();
- }
-
- LIBC_INLINE BFloat16 operator+(BFloat16 other) const {
- return fputil::generic::add<BFloat16>(*this, other);
- }
-
- LIBC_INLINE BFloat16 operator-(BFloat16 other) const {
- return fputil::generic::sub<BFloat16>(*this, other);
- }
-
- LIBC_INLINE BFloat16 operator*(BFloat16 other) const {
- return fputil::generic::mul<bfloat16>(*this, other);
- }
-
- LIBC_INLINE BFloat16 operator/(BFloat16 other) const {
- return fputil::generic::div<bfloat16>(*this, other);
- }
-
- LIBC_INLINE BFloat16 &operator*=(const BFloat16 &other) {
- *this = *this * other;
- return *this;
- }
-}; // struct BFloat16
-
-} // namespace fputil
-} // namespace LIBC_NAMESPACE_DECL
-
-#endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
+//===-- Definition of bfloat16 data type. -----------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
+#define LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
+
+#include "hdr/stdint_proxy.h"
+#include "src/__support/CPP/bit.h"
+#include "src/__support/CPP/type_traits.h"
+#include "src/__support/FPUtil/cast.h"
+#include "src/__support/FPUtil/comparison_operations.h"
+#include "src/__support/FPUtil/dyadic_float.h"
+#include "src/__support/FPUtil/generic/add_sub.h"
+#include "src/__support/FPUtil/generic/div.h"
+#include "src/__support/FPUtil/generic/mul.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/properties/types.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
+
+struct BFloat16 {
+ uint16_t bits;
+
+ LIBC_INLINE BFloat16() = default;
+
+ template <typename T>
+ LIBC_INLINE constexpr explicit BFloat16(T value)
+ : bits(static_cast<uint16_t>(0U)) {
+ if constexpr (cpp::is_floating_point_v<T>) {
+ bits = fputil::cast<bfloat16>(value).bits;
+ } else if constexpr (cpp::is_integral_v<T>) {
+ Sign sign = Sign::POS;
+
+ if constexpr (cpp::is_signed_v<T>) {
+ if (value < 0) {
+ sign = Sign::NEG;
+ value = -value;
+ }
+ }
+
+ fputil::DyadicFloat<cpp::numeric_limits<cpp::make_unsigned_t<T>>::digits>
+ xd(sign, 0, value);
+ bits = xd.template as<bfloat16, /*ShouldSignalExceptions=*/true>().bits;
+
+ } else if constexpr (cpp::is_convertible_v<T, BFloat16>) {
+ bits = value.operator BFloat16().bits;
+ } else {
+ bits = fputil::cast<bfloat16>(static_cast<float>(value)).bits;
+ }
+ }
+
+ template <cpp::enable_if_t<fputil::get_fp_type<float>() ==
+ fputil::FPType::IEEE754_Binary32,
+ int> = 0>
+ LIBC_INLINE constexpr operator float() const {
+ uint32_t x_bits = static_cast<uint32_t>(bits) << 16U;
+ return cpp::bit_cast<float>(x_bits);
+ }
+
+ template <typename T, cpp::enable_if_t<cpp::is_integral_v<T>, int> = 0>
+ LIBC_INLINE constexpr explicit operator T() const {
+ return static_cast<T>(static_cast<float>(*this));
+ }
+
+ LIBC_INLINE bool operator==(BFloat16 other) const {
+ return fputil::equals(*this, other);
+ }
+
+ LIBC_INLINE bool operator!=(BFloat16 other) const {
+ return !fputil::equals(*this, other);
+ }
+
+ LIBC_INLINE bool operator<(BFloat16 other) const {
+ return fputil::less_than(*this, other);
+ }
+
+ LIBC_INLINE bool operator<=(BFloat16 other) const {
+ return fputil::less_than_or_equals(*this, other);
+ }
+
+ LIBC_INLINE bool operator>(BFloat16 other) const {
+ return fputil::greater_than(*this, other);
+ }
+
+ LIBC_INLINE bool operator>=(BFloat16 other) const {
+ return fputil::greater_than_or_equals(*this, other);
+ }
+
+ LIBC_INLINE constexpr BFloat16 operator-() const {
+ fputil::FPBits<bfloat16> result(*this);
+ result.set_sign(result.is_pos() ? Sign::NEG : Sign::POS);
+ return result.get_val();
+ }
+
+ LIBC_INLINE BFloat16 operator+(BFloat16 other) const {
+ return fputil::generic::add<BFloat16>(*this, other);
+ }
+
+ LIBC_INLINE BFloat16 operator-(BFloat16 other) const {
+ return fputil::generic::sub<BFloat16>(*this, other);
+ }
+
+ LIBC_INLINE BFloat16 operator*(BFloat16 other) const {
+ return fputil::generic::mul<bfloat16>(*this, other);
+ }
+
+ LIBC_INLINE BFloat16 operator/(BFloat16 other) const {
+ return fputil::generic::div<bfloat16>(*this, other);
+ }
+
+ LIBC_INLINE BFloat16 &operator*=(const BFloat16 &other) {
+ *this = *this * other;
+ return *this;
+ }
+}; // struct BFloat16
+
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_BFLOAT16_H
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 68ee2208beb1f..862f019122c15 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -59,4 +59,39 @@ TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
}
}
+}
+TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
+
+
+ for (uint16_t v1 = POS_START; v1 <= POS_STOP; ++v1) {
+ for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ bfloat16 z = -(x * y);
+
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ }
+
+}
+
+TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
+ for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
+ for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ bfloat16 z = -(x * y);
+
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ }
+
}
\ No newline at end of file
>From 6b321fd23d92334be40a297eb593a59370191875 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 07:12:47 +0530
Subject: [PATCH 20/43] test edit rm
---
libc/test/src/math/fmabf16_test.cpp | 35 -----------------------------
1 file changed, 35 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 862f019122c15..da5f6db2696cc 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -60,38 +60,3 @@ TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
}
}
-TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
-
-
- for (uint16_t v1 = POS_START; v1 <= POS_STOP; ++v1) {
- for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- bfloat16 z = -(x * y);
-
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- }
-
-}
-
-TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
- for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
- for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- bfloat16 z = -(x * y);
-
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- }
-
-}
\ No newline at end of file
>From fc12383401d53543a5b6852b4d3565b374dbb46e Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 11:39:27 +0530
Subject: [PATCH 21/43] chceking if its time limit constrain for ubuntu 24.04 (
reduced to 2^16)
---
libc/src/__support/FPUtil/bfloat16.h | 4 ++--
libc/test/src/math/fmabf16_test.cpp | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/libc/src/__support/FPUtil/bfloat16.h b/libc/src/__support/FPUtil/bfloat16.h
index 4629a3d950290..7d64b441bf9b2 100644
--- a/libc/src/__support/FPUtil/bfloat16.h
+++ b/libc/src/__support/FPUtil/bfloat16.h
@@ -115,8 +115,8 @@ struct BFloat16 {
}
LIBC_INLINE BFloat16 &operator*=(const BFloat16 &other) {
- *this = *this * other;
- return *this;
+ *this = *this * other;
+ return *this;
}
}; // struct BFloat16
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index da5f6db2696cc..4ebc029a72387 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -29,7 +29,7 @@ TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
for (uint16_t v1 = POS_START; v1 <= POS_STOP; ++v1) {
- for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
+ // for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
bfloat16 x = FPBits(v1).get_val();
bfloat16 y = FPBits(v2).get_val();
@@ -39,14 +39,14 @@ TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
+ // }
}
}
TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
- for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
+ // for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
bfloat16 x = FPBits(v1).get_val();
bfloat16 y = FPBits(v2).get_val();
@@ -57,6 +57,6 @@ TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
- }
+ // }
}
>From 382b629112fd82c0bb5d57dcbd51a1f9df6e412c Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 11:49:01 +0530
Subject: [PATCH 22/43] continued prev
---
libc/test/src/math/fmabf16_test.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 4ebc029a72387..f57af0b6272a8 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -32,7 +32,7 @@ TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
// for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
+ bfloat16 y = FPBits(POS_START).get_val();
bfloat16 z = FPBits(POS_START).get_val();
mpfr::TernaryInput<bfloat16> input{x, y, z};
@@ -49,7 +49,7 @@ TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
// for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
+ bfloat16 y = FPBits(NEG_START).get_val();
bfloat16 z = FPBits(NEG_START).get_val();
mpfr::TernaryInput<bfloat16> input{x, y, z};
>From 9e11f3eb31e5ece533ac841ee69615221468137c Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 12:31:41 +0530
Subject: [PATCH 23/43] github CI passes for single bf16 input space - testing
for 2 + 1 fixed
---
libc/test/src/math/fmabf16_test.cpp | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index f57af0b6272a8..da5f6db2696cc 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -29,27 +29,27 @@ TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
for (uint16_t v1 = POS_START; v1 <= POS_STOP; ++v1) {
- // for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
+ for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(POS_START).get_val();
+ bfloat16 y = FPBits(v2).get_val();
bfloat16 z = FPBits(POS_START).get_val();
mpfr::TernaryInput<bfloat16> input{x, y, z};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- // }
+ }
}
}
TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
- // for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
+ for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(NEG_START).get_val();
+ bfloat16 y = FPBits(v2).get_val();
bfloat16 z = FPBits(NEG_START).get_val();
mpfr::TernaryInput<bfloat16> input{x, y, z};
@@ -57,6 +57,6 @@ TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
- // }
+ }
}
>From 2dfcd27d082f5b7fa4ae498e713dd23d7b596c69 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 13:27:05 +0530
Subject: [PATCH 24/43] reducing the input space while checking proper cases at
the same time + adding into math website
---
libc/docs/headers/math/index.rst | 2 +-
libc/test/src/math/fmabf16_test.cpp | 122 +++++++++++++++++++++++++---
2 files changed, 112 insertions(+), 12 deletions(-)
diff --git a/libc/docs/headers/math/index.rst b/libc/docs/headers/math/index.rst
index 51bb17ff8dab6..7bea9d2e614b0 100644
--- a/libc/docs/headers/math/index.rst
+++ b/libc/docs/headers/math/index.rst
@@ -309,7 +309,7 @@ Higher Math Functions
+-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+------------------------+----------------------------+
| expm1 | |check| | |check| | | |check| | | | 7.12.6.6 | F.10.3.6 |
+-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+------------------------+----------------------------+
-| fma | |check| | |check| | | |check| | | | 7.12.13.1 | F.10.10.1 |
+| fma | |check| | |check| | | |check| | |check| | | 7.12.13.1 | F.10.10.1 |
+-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+------------------------+----------------------------+
| f16sqrt | |check|\* | |check|\* | |check|\* | N/A | |check| | | 7.12.14.6 | F.10.11 |
+-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+------------------------+----------------------------+
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index da5f6db2696cc..a95c38b6dfbac 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -11,7 +11,6 @@
#include "test/UnitTest/FPMatcher.h"
#include "test/UnitTest/Test.h"
#include "utils/MPFRWrapper/MPFRUtils.h"
-#include <vector>
using LlvmLibcFmaBf16Test = LIBC_NAMESPACE::testing::FPTest<bfloat16>;
@@ -23,39 +22,140 @@ static constexpr uint16_t POS_STOP = 0x7f80U;
// range: [-0, -inf]
static constexpr uint16_t NEG_START = 0x8000U;
-static constexpr uint16_t NEG_STOP = 0xff80U; //-inf
+static constexpr uint16_t NEG_STOP = 0xff80U;
+
+// subnormal range (positive)
+static constexpr uint16_t SUBNORM_POS_START = 0x0001U;
+static constexpr uint16_t SUBNORM_POS_STOP = 0x007FU;
+
+// subnormal range (negative)
+static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
+static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
+
+static constexpr uint16_t STEP = 256;
TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
-
- for (uint16_t v1 = POS_START; v1 <= POS_STOP; ++v1) {
- for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += 256) {
+ const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
+ for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
bfloat16 x = FPBits(v1).get_val();
bfloat16 y = FPBits(v2).get_val();
- bfloat16 z = FPBits(POS_START).get_val();
+ for (bfloat16 z : z_values) {
mpfr::TernaryInput<bfloat16> input{x, y, z};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
}
}
}
TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
- for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; ++v1) {
- for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += 256) {
+ const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1+= STEP) {
+ for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
bfloat16 x = FPBits(v1).get_val();
bfloat16 y = FPBits(v2).get_val();
- bfloat16 z = FPBits(NEG_START).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
- mpfr::TernaryInput<bfloat16> input{x, y, z};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
+ }
+ }
+
+}
+TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
+ const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1+= STEP) {
+ for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
+ }
+ }
+
+}
+
+TEST_F(LlvmLibcFmaBf16Test, SubnormalPositiveRange) {
+ const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ for (uint16_t v1 = SUBNORM_POS_START; v1 <= SUBNORM_POS_STOP; v1++) {
+ for (uint16_t v2 = SUBNORM_POS_START; v2 <= SUBNORM_POS_STOP; v2++) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
+ }
+ }
+
+}
+
+TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
+ const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ for (uint16_t v1 = SUBNORM_NEG_START; v1 <= SUBNORM_NEG_STOP; v1++) {
+ for (uint16_t v2 = SUBNORM_NEG_START; v2 <= SUBNORM_NEG_STOP; v2++) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
+ }
+ }
+
+}
+
+TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
+ const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ const bfloat16 x_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ const bfloat16 y_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+
+ for (bfloat16 x : x_values) {
+ for (bfloat16 y : y_values) {
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
}
}
>From 80cf903e261801d1509275e755f40118f7c92a6e Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 13:27:45 +0530
Subject: [PATCH 25/43] formatted
---
libc/test/src/math/fmabf16_test.cpp | 216 +++++++++++++++++-----------
1 file changed, 136 insertions(+), 80 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index a95c38b6dfbac..f06670eb0f10b 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -36,127 +36,183 @@ static constexpr uint16_t STEP = 256;
TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
- const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
- for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
- for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
-
- for (bfloat16 z : z_values) {
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ FPBits(0x3f80U).get_val(),
+ FPBits(0xbf80U).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
+ for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+
+ for (bfloat16 z : z_values) {
mpfr::TernaryInput<bfloat16> input{x, y, z};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
}
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
}
-
+ }
}
TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
- const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
- for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1+= STEP) {
- for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ FPBits(0x3f80U).get_val(),
+ FPBits(0xbf80U).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1 += STEP) {
+ for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
}
-
+ }
}
TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
- const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
- for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1+= STEP) {
- for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ FPBits(0x3f80U).get_val(),
+ FPBits(0xbf80U).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
+ for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
}
-
+ }
}
TEST_F(LlvmLibcFmaBf16Test, SubnormalPositiveRange) {
- const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ FPBits(0x3f80U).get_val(),
+ FPBits(0xbf80U).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
for (uint16_t v1 = SUBNORM_POS_START; v1 <= SUBNORM_POS_STOP; v1++) {
- for (uint16_t v2 = SUBNORM_POS_START; v2 <= SUBNORM_POS_STOP; v2++) {
+ for (uint16_t v2 = SUBNORM_POS_START; v2 <= SUBNORM_POS_STOP; v2++) {
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
}
-
+ }
}
TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
- const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ FPBits(0x3f80U).get_val(),
+ FPBits(0xbf80U).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
for (uint16_t v1 = SUBNORM_NEG_START; v1 <= SUBNORM_NEG_STOP; v1++) {
- for (uint16_t v2 = SUBNORM_NEG_START; v2 <= SUBNORM_NEG_STOP; v2++) {
+ for (uint16_t v2 = SUBNORM_NEG_START; v2 <= SUBNORM_NEG_STOP; v2++) {
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
}
-
+ }
}
TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
- const bfloat16 z_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
- const bfloat16 x_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
- const bfloat16 y_values[] = {zero, neg_zero, FPBits(0x3f80U).get_val(), FPBits(0xbf80U).get_val(), inf, neg_inf, min_normal, max_normal};
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ FPBits(0x3f80U).get_val(),
+ FPBits(0xbf80U).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ const bfloat16 x_values[] = {zero,
+ neg_zero,
+ FPBits(0x3f80U).get_val(),
+ FPBits(0xbf80U).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ const bfloat16 y_values[] = {zero,
+ neg_zero,
+ FPBits(0x3f80U).get_val(),
+ FPBits(0xbf80U).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
for (bfloat16 x : x_values) {
- for (bfloat16 y : y_values) {
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x*y};
+ for (bfloat16 y : y_values) {
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y,- x*y), 0.5);
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
}
-
+ }
}
>From 9faf46db93a97429c323b19d28073c9e51ac900f Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 13:35:59 +0530
Subject: [PATCH 26/43] uint32_t error fixed ( declar at top or static cast )
---
libc/test/src/math/fmabf16_test.cpp | 33 +++++++++++++++--------------
1 file changed, 17 insertions(+), 16 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index f06670eb0f10b..3c6fe802bf447 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -32,14 +32,15 @@ static constexpr uint16_t SUBNORM_POS_STOP = 0x007FU;
static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
+
static constexpr uint16_t STEP = 256;
TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
const bfloat16 z_values[] = {zero,
neg_zero,
- FPBits(0x3f80U).get_val(),
- FPBits(0xbf80U).get_val(),
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
@@ -67,8 +68,8 @@ TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
const bfloat16 z_values[] = {zero,
neg_zero,
- FPBits(0x3f80U).get_val(),
- FPBits(0xbf80U).get_val(),
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
@@ -94,8 +95,8 @@ TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
const bfloat16 z_values[] = {zero,
neg_zero,
- FPBits(0x3f80U).get_val(),
- FPBits(0xbf80U).get_val(),
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
@@ -122,8 +123,8 @@ TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
TEST_F(LlvmLibcFmaBf16Test, SubnormalPositiveRange) {
const bfloat16 z_values[] = {zero,
neg_zero,
- FPBits(0x3f80U).get_val(),
- FPBits(0xbf80U).get_val(),
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
@@ -150,8 +151,8 @@ TEST_F(LlvmLibcFmaBf16Test, SubnormalPositiveRange) {
TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
const bfloat16 z_values[] = {zero,
neg_zero,
- FPBits(0x3f80U).get_val(),
- FPBits(0xbf80U).get_val(),
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
@@ -178,24 +179,24 @@ TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
const bfloat16 z_values[] = {zero,
neg_zero,
- FPBits(0x3f80U).get_val(),
- FPBits(0xbf80U).get_val(),
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
max_normal};
const bfloat16 x_values[] = {zero,
neg_zero,
- FPBits(0x3f80U).get_val(),
- FPBits(0xbf80U).get_val(),
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
max_normal};
const bfloat16 y_values[] = {zero,
neg_zero,
- FPBits(0x3f80U).get_val(),
- FPBits(0xbf80U).get_val(),
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
>From c722295d51968df1f56c9a2be446221745532ad2 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 13:48:25 +0530
Subject: [PATCH 27/43] testin without Normal range
---
libc/test/src/math/fmabf16_test.cpp | 172 ++++++++++++++--------------
1 file changed, 86 insertions(+), 86 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 3c6fe802bf447..bfbae70935edc 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -33,92 +33,92 @@ static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
-static constexpr uint16_t STEP = 256;
-
-TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
-
- const bfloat16 z_values[] = {zero,
- neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
- inf,
- neg_inf,
- min_normal,
- max_normal};
- for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
- for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
-
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
- 0.5);
- }
- }
-}
-
-TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
- const bfloat16 z_values[] = {zero,
- neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
- inf,
- neg_inf,
- min_normal,
- max_normal};
- for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1 += STEP) {
- for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
- 0.5);
- }
- }
-}
-TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
- const bfloat16 z_values[] = {zero,
- neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
- inf,
- neg_inf,
- min_normal,
- max_normal};
- for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
- for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
- 0.5);
- }
- }
-}
+static constexpr uint16_t STEP = 512;
+
+// TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
+
+// const bfloat16 z_values[] = {zero,
+// neg_zero,
+// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
+// inf,
+// neg_inf,
+// min_normal,
+// max_normal};
+// for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
+// for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
+
+// bfloat16 x = FPBits(v1).get_val();
+// bfloat16 y = FPBits(v2).get_val();
+
+// for (bfloat16 z : z_values) {
+// mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+// }
+// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+// 0.5);
+// }
+// }
+// }
+
+// TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
+// const bfloat16 z_values[] = {zero,
+// neg_zero,
+// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
+// inf,
+// neg_inf,
+// min_normal,
+// max_normal};
+// for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1 += STEP) {
+// for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
+
+// bfloat16 x = FPBits(v1).get_val();
+// bfloat16 y = FPBits(v2).get_val();
+// for (bfloat16 z : z_values) {
+// mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+// }
+// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+// 0.5);
+// }
+// }
+// }
+// TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
+// const bfloat16 z_values[] = {zero,
+// neg_zero,
+// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
+// inf,
+// neg_inf,
+// min_normal,
+// max_normal};
+// for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
+// for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
+
+// bfloat16 x = FPBits(v1).get_val();
+// bfloat16 y = FPBits(v2).get_val();
+// for (bfloat16 z : z_values) {
+// mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+// }
+// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+// 0.5);
+// }
+// }
+// }
TEST_F(LlvmLibcFmaBf16Test, SubnormalPositiveRange) {
const bfloat16 z_values[] = {zero,
>From cc29d069998caa8b9d97a9f900aae1b9dfe7edcd Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 14:01:48 +0530
Subject: [PATCH 28/43] test
---
libc/test/src/math/fmabf16_test.cpp | 88 -----------------------------
1 file changed, 88 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index bfbae70935edc..974a905bc1b22 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -32,94 +32,6 @@ static constexpr uint16_t SUBNORM_POS_STOP = 0x007FU;
static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
-
-static constexpr uint16_t STEP = 512;
-
-// TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
-
-// const bfloat16 z_values[] = {zero,
-// neg_zero,
-// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
-// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
-// inf,
-// neg_inf,
-// min_normal,
-// max_normal};
-// for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
-// for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
-
-// bfloat16 x = FPBits(v1).get_val();
-// bfloat16 y = FPBits(v2).get_val();
-
-// for (bfloat16 z : z_values) {
-// mpfr::TernaryInput<bfloat16> input{x, y, z};
-
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
-// }
-// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
-// 0.5);
-// }
-// }
-// }
-
-// TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
-// const bfloat16 z_values[] = {zero,
-// neg_zero,
-// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
-// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
-// inf,
-// neg_inf,
-// min_normal,
-// max_normal};
-// for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1 += STEP) {
-// for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
-// bfloat16 x = FPBits(v1).get_val();
-// bfloat16 y = FPBits(v2).get_val();
-// for (bfloat16 z : z_values) {
-// mpfr::TernaryInput<bfloat16> input{x, y, z};
-
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
-// }
-// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
-// 0.5);
-// }
-// }
-// }
-// TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
-// const bfloat16 z_values[] = {zero,
-// neg_zero,
-// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
-// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
-// inf,
-// neg_inf,
-// min_normal,
-// max_normal};
-// for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
-// for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
-// bfloat16 x = FPBits(v1).get_val();
-// bfloat16 y = FPBits(v2).get_val();
-// for (bfloat16 z : z_values) {
-// mpfr::TernaryInput<bfloat16> input{x, y, z};
-
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
-// }
-// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
-// 0.5);
-// }
-// }
-// }
-
TEST_F(LlvmLibcFmaBf16Test, SubnormalPositiveRange) {
const bfloat16 z_values[] = {zero,
neg_zero,
>From b7e6619c3acc04937bda589750e3e0054a17e409 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 14:08:55 +0530
Subject: [PATCH 29/43] only for limited exhaust
---
libc/test/src/math/fmabf16_test.cpp | 61 -----------------------------
1 file changed, 61 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 974a905bc1b22..df49e7bbaf9de 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -32,83 +32,22 @@ static constexpr uint16_t SUBNORM_POS_STOP = 0x007FU;
static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
-TEST_F(LlvmLibcFmaBf16Test, SubnormalPositiveRange) {
- const bfloat16 z_values[] = {zero,
- neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
- inf,
- neg_inf,
- min_normal,
- max_normal};
- for (uint16_t v1 = SUBNORM_POS_START; v1 <= SUBNORM_POS_STOP; v1++) {
- for (uint16_t v2 = SUBNORM_POS_START; v2 <= SUBNORM_POS_STOP; v2++) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
- 0.5);
- }
- }
-}
-
-TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
- const bfloat16 z_values[] = {zero,
- neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
- inf,
- neg_inf,
- min_normal,
- max_normal};
- for (uint16_t v1 = SUBNORM_NEG_START; v1 <= SUBNORM_NEG_STOP; v1++) {
- for (uint16_t v2 = SUBNORM_NEG_START; v2 <= SUBNORM_NEG_STOP; v2++) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
- 0.5);
- }
- }
-}
TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
const bfloat16 z_values[] = {zero,
neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
max_normal};
const bfloat16 x_values[] = {zero,
neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
max_normal};
const bfloat16 y_values[] = {zero,
neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
inf,
neg_inf,
min_normal,
>From 6364d5e37c1e945232cebadcc8b1494be27a3afc Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 14:23:30 +0530
Subject: [PATCH 30/43] test
---
libc/test/src/math/fmabf16_test.cpp | 25 +++----------------------
1 file changed, 3 insertions(+), 22 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index df49e7bbaf9de..76e62c80f88ba 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -34,24 +34,9 @@ static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
- const bfloat16 z_values[] = {zero,
- neg_zero,
- inf,
- neg_inf,
- min_normal,
- max_normal};
- const bfloat16 x_values[] = {zero,
- neg_zero,
- inf,
- neg_inf,
- min_normal,
- max_normal};
- const bfloat16 y_values[] = {zero,
- neg_zero,
- inf,
- neg_inf,
- min_normal,
- max_normal};
+ const bfloat16 z_values[] = {zero, neg_zero, min_normal};
+ const bfloat16 x_values[] = {zero, neg_zero, min_normal};
+ const bfloat16 y_values[] = {zero, neg_zero, min_normal};
for (bfloat16 x : x_values) {
for (bfloat16 y : y_values) {
@@ -61,10 +46,6 @@ TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
- 0.5);
}
}
}
>From 4180589291211259e243a94253f3cb53f8fb686d Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 14:43:21 +0530
Subject: [PATCH 31/43] testing for max/min normal + special
---
libc/test/src/math/fmabf16_test.cpp | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 76e62c80f88ba..df49e7bbaf9de 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -34,9 +34,24 @@ static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
- const bfloat16 z_values[] = {zero, neg_zero, min_normal};
- const bfloat16 x_values[] = {zero, neg_zero, min_normal};
- const bfloat16 y_values[] = {zero, neg_zero, min_normal};
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ const bfloat16 x_values[] = {zero,
+ neg_zero,
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ const bfloat16 y_values[] = {zero,
+ neg_zero,
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
for (bfloat16 x : x_values) {
for (bfloat16 y : y_values) {
@@ -46,6 +61,10 @@ TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
}
}
}
>From f9040d730ef563dbbb0dff7ce34e1e5b9922534a Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 15:51:57 +0530
Subject: [PATCH 32/43] checking if adding condn for that specific test helps
---
libc/src/__support/FPUtil/generic/FMA.h | 581 ++++++++++++------------
libc/test/src/math/fmabf16_test.cpp | 5 +-
2 files changed, 296 insertions(+), 290 deletions(-)
diff --git a/libc/src/__support/FPUtil/generic/FMA.h b/libc/src/__support/FPUtil/generic/FMA.h
index bec312e44b1b1..2db280af94aaf 100644
--- a/libc/src/__support/FPUtil/generic/FMA.h
+++ b/libc/src/__support/FPUtil/generic/FMA.h
@@ -1,288 +1,293 @@
-//===-- Common header for FMA implementations -------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
-#define LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
-
-#include "src/__support/CPP/bit.h"
-#include "src/__support/CPP/limits.h"
-#include "src/__support/CPP/type_traits.h"
-#include "src/__support/FPUtil/BasicOperations.h"
-#include "src/__support/FPUtil/FPBits.h"
-#include "src/__support/FPUtil/cast.h"
-#include "src/__support/FPUtil/dyadic_float.h"
-#include "src/__support/FPUtil/rounding_mode.h"
-#include "src/__support/big_int.h"
-#include "src/__support/macros/attributes.h" // LIBC_INLINE
-#include "src/__support/macros/config.h"
-#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
-
-#include "hdr/fenv_macros.h"
-
-namespace LIBC_NAMESPACE_DECL {
-namespace fputil {
-namespace generic {
-
-template <typename OutType, typename InType>
-LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
- cpp::is_floating_point_v<InType> &&
- sizeof(OutType) <= sizeof(InType),
- OutType>
-fma(InType x, InType y, InType z);
-
-// TODO(lntue): Implement fmaf that is correctly rounded to all rounding modes.
-// The implementation below only is only correct for the default rounding mode,
-// round-to-nearest tie-to-even.
-template <> LIBC_INLINE float fma<float>(float x, float y, float z) {
- // Product is exact.
- double prod = static_cast<double>(x) * static_cast<double>(y);
- double z_d = static_cast<double>(z);
- double sum = prod + z_d;
- fputil::FPBits<double> bit_prod(prod), bitz(z_d), bit_sum(sum);
-
- if (!(bit_sum.is_inf_or_nan() || bit_sum.is_zero())) {
- // Since the sum is computed in double precision, rounding might happen
- // (for instance, when bitz.exponent > bit_prod.exponent + 5, or
- // bit_prod.exponent > bitz.exponent + 40). In that case, when we round
- // the sum back to float, double rounding error might occur.
- // A concrete example of this phenomenon is as follows:
- // x = y = 1 + 2^(-12), z = 2^(-53)
- // The exact value of x*y + z is 1 + 2^(-11) + 2^(-24) + 2^(-53)
- // So when rounding to float, fmaf(x, y, z) = 1 + 2^(-11) + 2^(-23)
- // On the other hand, with the default rounding mode,
- // double(x*y + z) = 1 + 2^(-11) + 2^(-24)
- // and casting again to float gives us:
- // float(double(x*y + z)) = 1 + 2^(-11).
- //
- // In order to correct this possible double rounding error, first we use
- // Dekker's 2Sum algorithm to find t such that sum - t = prod + z exactly,
- // assuming the (default) rounding mode is round-to-the-nearest,
- // tie-to-even. Moreover, t satisfies the condition that t < eps(sum),
- // i.e., t.exponent < sum.exponent - 52. So if t is not 0, meaning rounding
- // occurs when computing the sum, we just need to use t to adjust (any) last
- // bit of sum, so that the sticky bits used when rounding sum to float are
- // correct (when it matters).
- fputil::FPBits<double> t(
- (bit_prod.get_biased_exponent() >= bitz.get_biased_exponent())
- ? ((bit_sum.get_val() - bit_prod.get_val()) - bitz.get_val())
- : ((bit_sum.get_val() - bitz.get_val()) - bit_prod.get_val()));
-
- // Update sticky bits if t != 0.0 and the least (52 - 23 - 1 = 28) bits are
- // zero.
- if (!t.is_zero() && ((bit_sum.get_mantissa() & 0xfff'ffffULL) == 0)) {
- if (bit_sum.sign() != t.sign())
- bit_sum.set_mantissa(bit_sum.get_mantissa() + 1);
- else if (bit_sum.get_mantissa())
- bit_sum.set_mantissa(bit_sum.get_mantissa() - 1);
- }
- }
-
- return static_cast<float>(bit_sum.get_val());
-}
-
-namespace internal {
-
-// Extract the sticky bits and shift the `mantissa` to the right by
-// `shift_length`.
-template <typename T>
-LIBC_INLINE cpp::enable_if_t<is_unsigned_integral_or_big_int_v<T>, bool>
-shift_mantissa(int shift_length, T &mant) {
- if (shift_length >= cpp::numeric_limits<T>::digits) {
- mant = 0;
- return true; // prod_mant is non-zero.
- }
- T mask = (T(1) << shift_length) - 1;
- bool sticky_bits = (mant & mask) != 0;
- mant >>= shift_length;
- return sticky_bits;
-}
-
-} // namespace internal
-
-template <typename OutType, typename InType>
-LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
- cpp::is_floating_point_v<InType> &&
- sizeof(OutType) <= sizeof(InType),
- OutType>
-fma(InType x, InType y, InType z) {
- using OutFPBits = FPBits<OutType>;
- using OutStorageType = typename OutFPBits::StorageType;
- using InFPBits = FPBits<InType>;
- using InStorageType = typename InFPBits::StorageType;
-
- constexpr int IN_EXPLICIT_MANT_LEN = InFPBits::FRACTION_LEN + 1;
- constexpr size_t PROD_LEN = 2 * IN_EXPLICIT_MANT_LEN;
- constexpr size_t TMP_RESULT_LEN = cpp::bit_ceil(PROD_LEN + 1);
- using TmpResultType = UInt<TMP_RESULT_LEN>;
- using DyadicFloat = DyadicFloat<TMP_RESULT_LEN>;
-
- InFPBits x_bits(x), y_bits(y), z_bits(z);
-
- if (LIBC_UNLIKELY(x_bits.is_nan() || y_bits.is_nan() || z_bits.is_nan())) {
- if (x_bits.is_nan() || y_bits.is_nan()) {
- if (x_bits.is_signaling_nan() || y_bits.is_signaling_nan() ||
- z_bits.is_signaling_nan())
- raise_except_if_required(FE_INVALID);
-
- if (x_bits.is_quiet_nan()) {
- InStorageType x_payload = x_bits.get_mantissa();
- x_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
- return OutFPBits::quiet_nan(x_bits.sign(),
- static_cast<OutStorageType>(x_payload))
- .get_val();
- }
-
- if (y_bits.is_quiet_nan()) {
- InStorageType y_payload = y_bits.get_mantissa();
- y_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
- return OutFPBits::quiet_nan(y_bits.sign(),
- static_cast<OutStorageType>(y_payload))
- .get_val();
- }
-
- if (z_bits.is_quiet_nan()) {
- InStorageType z_payload = z_bits.get_mantissa();
- z_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
- return OutFPBits::quiet_nan(z_bits.sign(),
- static_cast<OutStorageType>(z_payload))
- .get_val();
- }
-
- return OutFPBits::quiet_nan().get_val();
- }
- }
-
- if (LIBC_UNLIKELY(x == 0 || y == 0 || z == 0))
- return cast<OutType>(x * y + z);
-
- int x_exp = 0;
- int y_exp = 0;
- int z_exp = 0;
-
- // Denormal scaling = 2^(fraction length).
- constexpr InStorageType IMPLICIT_MASK =
- InFPBits::SIG_MASK - InFPBits::FRACTION_MASK;
-
- constexpr InType DENORMAL_SCALING =
- InFPBits::create_value(
- Sign::POS, InFPBits::FRACTION_LEN + InFPBits::EXP_BIAS, IMPLICIT_MASK)
- .get_val();
-
- // Normalize denormal inputs.
- if (LIBC_UNLIKELY(InFPBits(x).is_subnormal())) {
- x_exp -= InFPBits::FRACTION_LEN;
- x *= DENORMAL_SCALING;
- }
- if (LIBC_UNLIKELY(InFPBits(y).is_subnormal())) {
- y_exp -= InFPBits::FRACTION_LEN;
- y *= DENORMAL_SCALING;
- }
- if (LIBC_UNLIKELY(InFPBits(z).is_subnormal())) {
- z_exp -= InFPBits::FRACTION_LEN;
- z *= DENORMAL_SCALING;
- }
-
- x_bits = InFPBits(x);
- y_bits = InFPBits(y);
- z_bits = InFPBits(z);
- const Sign z_sign = z_bits.sign();
- Sign prod_sign = (x_bits.sign() == y_bits.sign()) ? Sign::POS : Sign::NEG;
- x_exp += x_bits.get_biased_exponent();
- y_exp += y_bits.get_biased_exponent();
- z_exp += z_bits.get_biased_exponent();
-
- if (LIBC_UNLIKELY(x_exp == InFPBits::MAX_BIASED_EXPONENT ||
- y_exp == InFPBits::MAX_BIASED_EXPONENT ||
- z_exp == InFPBits::MAX_BIASED_EXPONENT))
- return cast<OutType>(x * y + z);
-
- // Extract mantissa and append hidden leading bits.
- InStorageType x_mant = x_bits.get_explicit_mantissa();
- InStorageType y_mant = y_bits.get_explicit_mantissa();
- TmpResultType z_mant = z_bits.get_explicit_mantissa();
-
- // If the exponent of the product x*y > the exponent of z, then no extra
- // precision beside the entire product x*y is needed. On the other hand, when
- // the exponent of z >= the exponent of the product x*y, the worst-case that
- // we need extra precision is when there is cancellation and the most
- // significant bit of the product is aligned exactly with the second most
- // significant bit of z:
- // z : 10aa...a
- // - prod : 1bb...bb....b
- // In that case, in order to store the exact result, we need at least
- // (Length of prod) - (Fraction length of z)
- // = 2*(Length of input explicit mantissa) - (Fraction length of z) bits.
- // Overall, before aligning the mantissas and exponents, we can simply left-
- // shift the mantissa of z by that amount. After that, it is enough to align
- // the least significant bit, given that we keep track of the round and sticky
- // bits after the least significant bit.
-
- TmpResultType prod_mant = TmpResultType(x_mant) * y_mant;
- int prod_lsb_exp =
- x_exp + y_exp - (InFPBits::EXP_BIAS + 2 * InFPBits::FRACTION_LEN);
-
- constexpr int RESULT_MIN_LEN = PROD_LEN - InFPBits::FRACTION_LEN;
- z_mant <<= RESULT_MIN_LEN;
- int z_lsb_exp = z_exp - (InFPBits::FRACTION_LEN + RESULT_MIN_LEN);
- bool sticky_bits = false;
- bool z_shifted = false;
-
- // Align exponents.
- if (prod_lsb_exp < z_lsb_exp) {
- sticky_bits = internal::shift_mantissa(z_lsb_exp - prod_lsb_exp, prod_mant);
- prod_lsb_exp = z_lsb_exp;
- } else if (z_lsb_exp < prod_lsb_exp) {
- z_shifted = true;
- sticky_bits = internal::shift_mantissa(prod_lsb_exp - z_lsb_exp, z_mant);
- }
-
- // Perform the addition:
- // (-1)^prod_sign * prod_mant + (-1)^z_sign * z_mant.
- // The final result will be stored in prod_sign and prod_mant.
- if (prod_sign == z_sign) {
- // Effectively an addition.
- prod_mant += z_mant;
- } else {
- // Subtraction cases.
- if (prod_mant >= z_mant) {
- if (z_shifted && sticky_bits) {
- // Add 1 more to the subtrahend so that the sticky bits remain
- // positive. This would simplify the rounding logic.
- ++z_mant;
- }
- prod_mant -= z_mant;
- } else {
- if (!z_shifted && sticky_bits) {
- // Add 1 more to the subtrahend so that the sticky bits remain
- // positive. This would simplify the rounding logic.
- ++prod_mant;
- }
- prod_mant = z_mant - prod_mant;
- prod_sign = z_sign;
- }
- }
-
- if (prod_mant == 0) {
- // When there is exact cancellation, i.e., x*y == -z exactly, return -0.0 if
- // rounding downward and +0.0 for other rounding modes.
- if (quick_get_round() == FE_DOWNWARD)
- prod_sign = Sign::NEG;
- else
- prod_sign = Sign::POS;
- }
-
- DyadicFloat result(prod_sign, prod_lsb_exp - InFPBits::EXP_BIAS, prod_mant);
- result.mantissa |= static_cast<unsigned int>(sticky_bits);
- return result.template as<OutType, /*ShouldSignalExceptions=*/true>();
-}
-
-} // namespace generic
-} // namespace fputil
-} // namespace LIBC_NAMESPACE_DECL
-
-#endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
+//===-- Common header for FMA implementations -------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
+#define LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
+
+#include "src/__support/CPP/bit.h"
+#include "src/__support/CPP/limits.h"
+#include "src/__support/CPP/type_traits.h"
+#include "src/__support/FPUtil/BasicOperations.h"
+#include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/FPUtil/cast.h"
+#include "src/__support/FPUtil/dyadic_float.h"
+#include "src/__support/FPUtil/rounding_mode.h"
+#include "src/__support/big_int.h"
+#include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
+
+#include "hdr/fenv_macros.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
+namespace generic {
+
+template <typename OutType, typename InType>
+LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
+ cpp::is_floating_point_v<InType> &&
+ sizeof(OutType) <= sizeof(InType),
+ OutType>
+fma(InType x, InType y, InType z);
+
+// TODO(lntue): Implement fmaf that is correctly rounded to all rounding modes.
+// The implementation below only is only correct for the default rounding mode,
+// round-to-nearest tie-to-even.
+template <> LIBC_INLINE float fma<float>(float x, float y, float z) {
+ // Product is exact.
+ double prod = static_cast<double>(x) * static_cast<double>(y);
+ double z_d = static_cast<double>(z);
+ double sum = prod + z_d;
+ fputil::FPBits<double> bit_prod(prod), bitz(z_d), bit_sum(sum);
+
+ if (!(bit_sum.is_inf_or_nan() || bit_sum.is_zero())) {
+ // Since the sum is computed in double precision, rounding might happen
+ // (for instance, when bitz.exponent > bit_prod.exponent + 5, or
+ // bit_prod.exponent > bitz.exponent + 40). In that case, when we round
+ // the sum back to float, double rounding error might occur.
+ // A concrete example of this phenomenon is as follows:
+ // x = y = 1 + 2^(-12), z = 2^(-53)
+ // The exact value of x*y + z is 1 + 2^(-11) + 2^(-24) + 2^(-53)
+ // So when rounding to float, fmaf(x, y, z) = 1 + 2^(-11) + 2^(-23)
+ // On the other hand, with the default rounding mode,
+ // double(x*y + z) = 1 + 2^(-11) + 2^(-24)
+ // and casting again to float gives us:
+ // float(double(x*y + z)) = 1 + 2^(-11).
+ //
+ // In order to correct this possible double rounding error, first we use
+ // Dekker's 2Sum algorithm to find t such that sum - t = prod + z exactly,
+ // assuming the (default) rounding mode is round-to-the-nearest,
+ // tie-to-even. Moreover, t satisfies the condition that t < eps(sum),
+ // i.e., t.exponent < sum.exponent - 52. So if t is not 0, meaning rounding
+ // occurs when computing the sum, we just need to use t to adjust (any) last
+ // bit of sum, so that the sticky bits used when rounding sum to float are
+ // correct (when it matters).
+ fputil::FPBits<double> t(
+ (bit_prod.get_biased_exponent() >= bitz.get_biased_exponent())
+ ? ((bit_sum.get_val() - bit_prod.get_val()) - bitz.get_val())
+ : ((bit_sum.get_val() - bitz.get_val()) - bit_prod.get_val()));
+
+ // Update sticky bits if t != 0.0 and the least (52 - 23 - 1 = 28) bits are
+ // zero.
+ if (!t.is_zero() && ((bit_sum.get_mantissa() & 0xfff'ffffULL) == 0)) {
+ if (bit_sum.sign() != t.sign())
+ bit_sum.set_mantissa(bit_sum.get_mantissa() + 1);
+ else if (bit_sum.get_mantissa())
+ bit_sum.set_mantissa(bit_sum.get_mantissa() - 1);
+ }
+ }
+
+ return static_cast<float>(bit_sum.get_val());
+}
+
+namespace internal {
+
+// Extract the sticky bits and shift the `mantissa` to the right by
+// `shift_length`.
+template <typename T>
+LIBC_INLINE cpp::enable_if_t<is_unsigned_integral_or_big_int_v<T>, bool>
+shift_mantissa(int shift_length, T &mant) {
+ if (shift_length >= cpp::numeric_limits<T>::digits) {
+ mant = 0;
+ return true; // prod_mant is non-zero.
+ }
+ T mask = (T(1) << shift_length) - 1;
+ bool sticky_bits = (mant & mask) != 0;
+ mant >>= shift_length;
+ return sticky_bits;
+}
+
+} // namespace internal
+
+template <typename OutType, typename InType>
+LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
+ cpp::is_floating_point_v<InType> &&
+ sizeof(OutType) <= sizeof(InType),
+ OutType>
+fma(InType x, InType y, InType z) {
+ using OutFPBits = FPBits<OutType>;
+ using OutStorageType = typename OutFPBits::StorageType;
+ using InFPBits = FPBits<InType>;
+ using InStorageType = typename InFPBits::StorageType;
+
+ constexpr int IN_EXPLICIT_MANT_LEN = InFPBits::FRACTION_LEN + 1;
+ constexpr size_t PROD_LEN = 2 * IN_EXPLICIT_MANT_LEN;
+ constexpr size_t TMP_RESULT_LEN = cpp::bit_ceil(PROD_LEN + 1);
+ using TmpResultType = UInt<TMP_RESULT_LEN>;
+ using DyadicFloat = DyadicFloat<TMP_RESULT_LEN>;
+
+ InFPBits x_bits(x), y_bits(y), z_bits(z);
+
+ if (LIBC_UNLIKELY(x_bits.is_nan() || y_bits.is_nan() || z_bits.is_nan())) {
+ if (x_bits.is_nan() || y_bits.is_nan()) {
+ if (x_bits.is_signaling_nan() || y_bits.is_signaling_nan() ||
+ z_bits.is_signaling_nan())
+ raise_except_if_required(FE_INVALID);
+
+ if (x_bits.is_quiet_nan()) {
+ InStorageType x_payload = x_bits.get_mantissa();
+ x_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
+ return OutFPBits::quiet_nan(x_bits.sign(),
+ static_cast<OutStorageType>(x_payload))
+ .get_val();
+ }
+
+ if (y_bits.is_quiet_nan()) {
+ InStorageType y_payload = y_bits.get_mantissa();
+ y_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
+ return OutFPBits::quiet_nan(y_bits.sign(),
+ static_cast<OutStorageType>(y_payload))
+ .get_val();
+ }
+
+ if (z_bits.is_quiet_nan()) {
+ InStorageType z_payload = z_bits.get_mantissa();
+ z_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
+ return OutFPBits::quiet_nan(z_bits.sign(),
+ static_cast<OutStorageType>(z_payload))
+ .get_val();
+ }
+
+ return OutFPBits::quiet_nan().get_val();
+ }
+ }
+
+ if (LIBC_UNLIKELY(x == 0 || y == 0 || z == 0))
+ return cast<OutType>(x * y + z);
+
+ int x_exp = 0;
+ int y_exp = 0;
+ int z_exp = 0;
+
+ // Denormal scaling = 2^(fraction length).
+ constexpr InStorageType IMPLICIT_MASK =
+ InFPBits::SIG_MASK - InFPBits::FRACTION_MASK;
+
+ constexpr InType DENORMAL_SCALING =
+ InFPBits::create_value(
+ Sign::POS, InFPBits::FRACTION_LEN + InFPBits::EXP_BIAS, IMPLICIT_MASK)
+ .get_val();
+
+ // Normalize denormal inputs.
+ if (LIBC_UNLIKELY(InFPBits(x).is_subnormal())) {
+ x_exp -= InFPBits::FRACTION_LEN;
+ x *= DENORMAL_SCALING;
+ }
+ if (LIBC_UNLIKELY(InFPBits(y).is_subnormal())) {
+ y_exp -= InFPBits::FRACTION_LEN;
+ y *= DENORMAL_SCALING;
+ }
+ if (LIBC_UNLIKELY(InFPBits(z).is_subnormal())) {
+ z_exp -= InFPBits::FRACTION_LEN;
+ z *= DENORMAL_SCALING;
+ }
+
+ x_bits = InFPBits(x);
+ y_bits = InFPBits(y);
+ z_bits = InFPBits(z);
+ const Sign z_sign = z_bits.sign();
+ Sign prod_sign = (x_bits.sign() == y_bits.sign()) ? Sign::POS : Sign::NEG;
+ x_exp += x_bits.get_biased_exponent();
+ y_exp += y_bits.get_biased_exponent();
+ z_exp += z_bits.get_biased_exponent();
+
+ if (LIBC_UNLIKELY(x_exp != InFPBits::MAX_BIASED_EXPONENT &&
+ y_exp != InFPBits::MAX_BIASED_EXPONENT &&
+ z_bits.is_inf()))
+ return cast<OutType>(z);
+
+ if (LIBC_UNLIKELY(x_exp == InFPBits::MAX_BIASED_EXPONENT ||
+ y_exp == InFPBits::MAX_BIASED_EXPONENT ||
+ z_exp == InFPBits::MAX_BIASED_EXPONENT))
+ return cast<OutType>(x * y + z);
+
+ // Extract mantissa and append hidden leading bits.
+ InStorageType x_mant = x_bits.get_explicit_mantissa();
+ InStorageType y_mant = y_bits.get_explicit_mantissa();
+ TmpResultType z_mant = z_bits.get_explicit_mantissa();
+
+ // If the exponent of the product x*y > the exponent of z, then no extra
+ // precision beside the entire product x*y is needed. On the other hand, when
+ // the exponent of z >= the exponent of the product x*y, the worst-case that
+ // we need extra precision is when there is cancellation and the most
+ // significant bit of the product is aligned exactly with the second most
+ // significant bit of z:
+ // z : 10aa...a
+ // - prod : 1bb...bb....b
+ // In that case, in order to store the exact result, we need at least
+ // (Length of prod) - (Fraction length of z)
+ // = 2*(Length of input explicit mantissa) - (Fraction length of z) bits.
+ // Overall, before aligning the mantissas and exponents, we can simply left-
+ // shift the mantissa of z by that amount. After that, it is enough to align
+ // the least significant bit, given that we keep track of the round and sticky
+ // bits after the least significant bit.
+
+ TmpResultType prod_mant = TmpResultType(x_mant) * y_mant;
+ int prod_lsb_exp =
+ x_exp + y_exp - (InFPBits::EXP_BIAS + 2 * InFPBits::FRACTION_LEN);
+
+ constexpr int RESULT_MIN_LEN = PROD_LEN - InFPBits::FRACTION_LEN;
+ z_mant <<= RESULT_MIN_LEN;
+ int z_lsb_exp = z_exp - (InFPBits::FRACTION_LEN + RESULT_MIN_LEN);
+ bool sticky_bits = false;
+ bool z_shifted = false;
+
+ // Align exponents.
+ if (prod_lsb_exp < z_lsb_exp) {
+ sticky_bits = internal::shift_mantissa(z_lsb_exp - prod_lsb_exp, prod_mant);
+ prod_lsb_exp = z_lsb_exp;
+ } else if (z_lsb_exp < prod_lsb_exp) {
+ z_shifted = true;
+ sticky_bits = internal::shift_mantissa(prod_lsb_exp - z_lsb_exp, z_mant);
+ }
+
+ // Perform the addition:
+ // (-1)^prod_sign * prod_mant + (-1)^z_sign * z_mant.
+ // The final result will be stored in prod_sign and prod_mant.
+ if (prod_sign == z_sign) {
+ // Effectively an addition.
+ prod_mant += z_mant;
+ } else {
+ // Subtraction cases.
+ if (prod_mant >= z_mant) {
+ if (z_shifted && sticky_bits) {
+ // Add 1 more to the subtrahend so that the sticky bits remain
+ // positive. This would simplify the rounding logic.
+ ++z_mant;
+ }
+ prod_mant -= z_mant;
+ } else {
+ if (!z_shifted && sticky_bits) {
+ // Add 1 more to the subtrahend so that the sticky bits remain
+ // positive. This would simplify the rounding logic.
+ ++prod_mant;
+ }
+ prod_mant = z_mant - prod_mant;
+ prod_sign = z_sign;
+ }
+ }
+
+ if (prod_mant == 0) {
+ // When there is exact cancellation, i.e., x*y == -z exactly, return -0.0 if
+ // rounding downward and +0.0 for other rounding modes.
+ if (quick_get_round() == FE_DOWNWARD)
+ prod_sign = Sign::NEG;
+ else
+ prod_sign = Sign::POS;
+ }
+
+ DyadicFloat result(prod_sign, prod_lsb_exp - InFPBits::EXP_BIAS, prod_mant);
+ result.mantissa |= static_cast<unsigned int>(sticky_bits);
+ return result.template as<OutType, /*ShouldSignalExceptions=*/true>();
+}
+
+} // namespace generic
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index df49e7bbaf9de..e009330904364 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -61,9 +61,10 @@ TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ bfloat16 neg_xy = -(x * y);
+ mpfr::TernaryInput<bfloat16> input{x, y, neg_xy};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ LIBC_NAMESPACE::fmabf16(x, y, neg_xy),
0.5);
}
}
>From 7bf6c7c3626d4ee766089a72e7b23560ceb6e1ee Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 16:10:50 +0530
Subject: [PATCH 33/43] testing with all together ~ 2^20 input spc
---
libc/test/src/math/fmabf16_test.cpp | 113 ++++++++++++++++++++++++++++
1 file changed, 113 insertions(+)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index e009330904364..878c5ecb02cba 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -32,6 +32,119 @@ static constexpr uint16_t SUBNORM_POS_STOP = 0x007FU;
static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
+static constexpr uint16_t STEP = 512;
+
+TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
+
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
+ for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
+ }
+ }
+}
+
+TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1 += STEP) {
+ for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
+ }
+ }
+}
+TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+ FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
+ for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
+ }
+ }
+}
+
+TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
+ const bfloat16 z_values[] = {zero,
+ neg_zero,
+ inf,
+ neg_inf,
+ min_normal,
+ max_normal};
+ for (uint16_t v1 = SUBNORM_NEG_START; v1 <= SUBNORM_NEG_STOP; v1++) {
+ for (uint16_t v2 = SUBNORM_NEG_START; v2 <= SUBNORM_NEG_STOP; v2++) {
+
+ bfloat16 x = FPBits(v1).get_val();
+ bfloat16 y = FPBits(v2).get_val();
+ for (bfloat16 z : z_values) {
+ mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+ }
+ mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+ LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ 0.5);
+ }
+ }
+}
+
TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
const bfloat16 z_values[] = {zero,
>From efae492524449c637f01a652d57b8edd031bc348 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 16:29:56 +0530
Subject: [PATCH 34/43] 2^17
---
libc/test/src/math/fmabf16_test.cpp | 29 +----------------------------
1 file changed, 1 insertion(+), 28 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 878c5ecb02cba..97bc82dcd230c 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -32,7 +32,7 @@ static constexpr uint16_t SUBNORM_POS_STOP = 0x007FU;
static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
-static constexpr uint16_t STEP = 512;
+static constexpr uint16_t STEP = 1024;
TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
@@ -91,33 +91,6 @@ TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
}
}
}
-TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
- const bfloat16 z_values[] = {zero,
- neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
- inf,
- neg_inf,
- min_normal,
- max_normal};
- for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
- for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
- 0.5);
- }
- }
-}
TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
const bfloat16 z_values[] = {zero,
>From b1433347ff1df1de0703bdad576d164ebe5cde4d Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 16:36:17 +0530
Subject: [PATCH 35/43] testing for 2
---
libc/test/src/math/fmabf16_test.cpp | 145 +++++++++++++++++-----------
1 file changed, 86 insertions(+), 59 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 97bc82dcd230c..23727022a444b 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -32,65 +32,92 @@ static constexpr uint16_t SUBNORM_POS_STOP = 0x007FU;
static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
-static constexpr uint16_t STEP = 1024;
-
-TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
-
- const bfloat16 z_values[] = {zero,
- neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
- inf,
- neg_inf,
- min_normal,
- max_normal};
- for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
- for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
-
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
- 0.5);
- }
- }
-}
-
-TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
- const bfloat16 z_values[] = {zero,
- neg_zero,
- FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
- FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
- inf,
- neg_inf,
- min_normal,
- max_normal};
- for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1 += STEP) {
- for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
- bfloat16 x = FPBits(v1).get_val();
- bfloat16 y = FPBits(v2).get_val();
- for (bfloat16 z : z_values) {
- mpfr::TernaryInput<bfloat16> input{x, y, z};
-
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
- }
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
- EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
- 0.5);
- }
- }
-}
+// static constexpr uint16_t STEP = 512;
+
+// TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
+
+// const bfloat16 z_values[] = {zero,
+// neg_zero,
+// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
+// inf,
+// neg_inf,
+// min_normal,
+// max_normal};
+// for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
+// for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
+
+// bfloat16 x = FPBits(v1).get_val();
+// bfloat16 y = FPBits(v2).get_val();
+
+// for (bfloat16 z : z_values) {
+// mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+// }
+// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+// 0.5);
+// }
+// }
+// }
+
+// TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
+// const bfloat16 z_values[] = {zero,
+// neg_zero,
+// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
+// inf,
+// neg_inf,
+// min_normal,
+// max_normal};
+// for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1 += STEP) {
+// for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
+
+// bfloat16 x = FPBits(v1).get_val();
+// bfloat16 y = FPBits(v2).get_val();
+// for (bfloat16 z : z_values) {
+// mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+// }
+// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+// 0.5);
+// }
+// }
+// }
+// TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
+// const bfloat16 z_values[] = {zero,
+// neg_zero,
+// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
+// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
+// inf,
+// neg_inf,
+// min_normal,
+// max_normal};
+// for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
+// for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
+
+// bfloat16 x = FPBits(v1).get_val();
+// bfloat16 y = FPBits(v2).get_val();
+// for (bfloat16 z : z_values) {
+// mpfr::TernaryInput<bfloat16> input{x, y, z};
+
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
+// }
+// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
+// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+// 0.5);
+// }
+// }
+// }
TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
const bfloat16 z_values[] = {zero,
>From baba8795c964b89f29cbaecbe4dab49cd8906327 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 17:00:23 +0530
Subject: [PATCH 36/43] 0 err
---
libc/src/__support/FPUtil/generic/FMA.h | 586 ++++++++++++------------
libc/test/src/math/fmabf16_test.cpp | 5 +-
2 files changed, 296 insertions(+), 295 deletions(-)
diff --git a/libc/src/__support/FPUtil/generic/FMA.h b/libc/src/__support/FPUtil/generic/FMA.h
index 2db280af94aaf..dc45957f80ff4 100644
--- a/libc/src/__support/FPUtil/generic/FMA.h
+++ b/libc/src/__support/FPUtil/generic/FMA.h
@@ -1,293 +1,293 @@
-//===-- Common header for FMA implementations -------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
-#define LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
-
-#include "src/__support/CPP/bit.h"
-#include "src/__support/CPP/limits.h"
-#include "src/__support/CPP/type_traits.h"
-#include "src/__support/FPUtil/BasicOperations.h"
-#include "src/__support/FPUtil/FPBits.h"
-#include "src/__support/FPUtil/cast.h"
-#include "src/__support/FPUtil/dyadic_float.h"
-#include "src/__support/FPUtil/rounding_mode.h"
-#include "src/__support/big_int.h"
-#include "src/__support/macros/attributes.h" // LIBC_INLINE
-#include "src/__support/macros/config.h"
-#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
-
-#include "hdr/fenv_macros.h"
-
-namespace LIBC_NAMESPACE_DECL {
-namespace fputil {
-namespace generic {
-
-template <typename OutType, typename InType>
-LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
- cpp::is_floating_point_v<InType> &&
- sizeof(OutType) <= sizeof(InType),
- OutType>
-fma(InType x, InType y, InType z);
-
-// TODO(lntue): Implement fmaf that is correctly rounded to all rounding modes.
-// The implementation below only is only correct for the default rounding mode,
-// round-to-nearest tie-to-even.
-template <> LIBC_INLINE float fma<float>(float x, float y, float z) {
- // Product is exact.
- double prod = static_cast<double>(x) * static_cast<double>(y);
- double z_d = static_cast<double>(z);
- double sum = prod + z_d;
- fputil::FPBits<double> bit_prod(prod), bitz(z_d), bit_sum(sum);
-
- if (!(bit_sum.is_inf_or_nan() || bit_sum.is_zero())) {
- // Since the sum is computed in double precision, rounding might happen
- // (for instance, when bitz.exponent > bit_prod.exponent + 5, or
- // bit_prod.exponent > bitz.exponent + 40). In that case, when we round
- // the sum back to float, double rounding error might occur.
- // A concrete example of this phenomenon is as follows:
- // x = y = 1 + 2^(-12), z = 2^(-53)
- // The exact value of x*y + z is 1 + 2^(-11) + 2^(-24) + 2^(-53)
- // So when rounding to float, fmaf(x, y, z) = 1 + 2^(-11) + 2^(-23)
- // On the other hand, with the default rounding mode,
- // double(x*y + z) = 1 + 2^(-11) + 2^(-24)
- // and casting again to float gives us:
- // float(double(x*y + z)) = 1 + 2^(-11).
- //
- // In order to correct this possible double rounding error, first we use
- // Dekker's 2Sum algorithm to find t such that sum - t = prod + z exactly,
- // assuming the (default) rounding mode is round-to-the-nearest,
- // tie-to-even. Moreover, t satisfies the condition that t < eps(sum),
- // i.e., t.exponent < sum.exponent - 52. So if t is not 0, meaning rounding
- // occurs when computing the sum, we just need to use t to adjust (any) last
- // bit of sum, so that the sticky bits used when rounding sum to float are
- // correct (when it matters).
- fputil::FPBits<double> t(
- (bit_prod.get_biased_exponent() >= bitz.get_biased_exponent())
- ? ((bit_sum.get_val() - bit_prod.get_val()) - bitz.get_val())
- : ((bit_sum.get_val() - bitz.get_val()) - bit_prod.get_val()));
-
- // Update sticky bits if t != 0.0 and the least (52 - 23 - 1 = 28) bits are
- // zero.
- if (!t.is_zero() && ((bit_sum.get_mantissa() & 0xfff'ffffULL) == 0)) {
- if (bit_sum.sign() != t.sign())
- bit_sum.set_mantissa(bit_sum.get_mantissa() + 1);
- else if (bit_sum.get_mantissa())
- bit_sum.set_mantissa(bit_sum.get_mantissa() - 1);
- }
- }
-
- return static_cast<float>(bit_sum.get_val());
-}
-
-namespace internal {
-
-// Extract the sticky bits and shift the `mantissa` to the right by
-// `shift_length`.
-template <typename T>
-LIBC_INLINE cpp::enable_if_t<is_unsigned_integral_or_big_int_v<T>, bool>
-shift_mantissa(int shift_length, T &mant) {
- if (shift_length >= cpp::numeric_limits<T>::digits) {
- mant = 0;
- return true; // prod_mant is non-zero.
- }
- T mask = (T(1) << shift_length) - 1;
- bool sticky_bits = (mant & mask) != 0;
- mant >>= shift_length;
- return sticky_bits;
-}
-
-} // namespace internal
-
-template <typename OutType, typename InType>
-LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
- cpp::is_floating_point_v<InType> &&
- sizeof(OutType) <= sizeof(InType),
- OutType>
-fma(InType x, InType y, InType z) {
- using OutFPBits = FPBits<OutType>;
- using OutStorageType = typename OutFPBits::StorageType;
- using InFPBits = FPBits<InType>;
- using InStorageType = typename InFPBits::StorageType;
-
- constexpr int IN_EXPLICIT_MANT_LEN = InFPBits::FRACTION_LEN + 1;
- constexpr size_t PROD_LEN = 2 * IN_EXPLICIT_MANT_LEN;
- constexpr size_t TMP_RESULT_LEN = cpp::bit_ceil(PROD_LEN + 1);
- using TmpResultType = UInt<TMP_RESULT_LEN>;
- using DyadicFloat = DyadicFloat<TMP_RESULT_LEN>;
-
- InFPBits x_bits(x), y_bits(y), z_bits(z);
-
- if (LIBC_UNLIKELY(x_bits.is_nan() || y_bits.is_nan() || z_bits.is_nan())) {
- if (x_bits.is_nan() || y_bits.is_nan()) {
- if (x_bits.is_signaling_nan() || y_bits.is_signaling_nan() ||
- z_bits.is_signaling_nan())
- raise_except_if_required(FE_INVALID);
-
- if (x_bits.is_quiet_nan()) {
- InStorageType x_payload = x_bits.get_mantissa();
- x_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
- return OutFPBits::quiet_nan(x_bits.sign(),
- static_cast<OutStorageType>(x_payload))
- .get_val();
- }
-
- if (y_bits.is_quiet_nan()) {
- InStorageType y_payload = y_bits.get_mantissa();
- y_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
- return OutFPBits::quiet_nan(y_bits.sign(),
- static_cast<OutStorageType>(y_payload))
- .get_val();
- }
-
- if (z_bits.is_quiet_nan()) {
- InStorageType z_payload = z_bits.get_mantissa();
- z_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
- return OutFPBits::quiet_nan(z_bits.sign(),
- static_cast<OutStorageType>(z_payload))
- .get_val();
- }
-
- return OutFPBits::quiet_nan().get_val();
- }
- }
-
- if (LIBC_UNLIKELY(x == 0 || y == 0 || z == 0))
- return cast<OutType>(x * y + z);
-
- int x_exp = 0;
- int y_exp = 0;
- int z_exp = 0;
-
- // Denormal scaling = 2^(fraction length).
- constexpr InStorageType IMPLICIT_MASK =
- InFPBits::SIG_MASK - InFPBits::FRACTION_MASK;
-
- constexpr InType DENORMAL_SCALING =
- InFPBits::create_value(
- Sign::POS, InFPBits::FRACTION_LEN + InFPBits::EXP_BIAS, IMPLICIT_MASK)
- .get_val();
-
- // Normalize denormal inputs.
- if (LIBC_UNLIKELY(InFPBits(x).is_subnormal())) {
- x_exp -= InFPBits::FRACTION_LEN;
- x *= DENORMAL_SCALING;
- }
- if (LIBC_UNLIKELY(InFPBits(y).is_subnormal())) {
- y_exp -= InFPBits::FRACTION_LEN;
- y *= DENORMAL_SCALING;
- }
- if (LIBC_UNLIKELY(InFPBits(z).is_subnormal())) {
- z_exp -= InFPBits::FRACTION_LEN;
- z *= DENORMAL_SCALING;
- }
-
- x_bits = InFPBits(x);
- y_bits = InFPBits(y);
- z_bits = InFPBits(z);
- const Sign z_sign = z_bits.sign();
- Sign prod_sign = (x_bits.sign() == y_bits.sign()) ? Sign::POS : Sign::NEG;
- x_exp += x_bits.get_biased_exponent();
- y_exp += y_bits.get_biased_exponent();
- z_exp += z_bits.get_biased_exponent();
-
- if (LIBC_UNLIKELY(x_exp != InFPBits::MAX_BIASED_EXPONENT &&
- y_exp != InFPBits::MAX_BIASED_EXPONENT &&
- z_bits.is_inf()))
- return cast<OutType>(z);
-
- if (LIBC_UNLIKELY(x_exp == InFPBits::MAX_BIASED_EXPONENT ||
- y_exp == InFPBits::MAX_BIASED_EXPONENT ||
- z_exp == InFPBits::MAX_BIASED_EXPONENT))
- return cast<OutType>(x * y + z);
-
- // Extract mantissa and append hidden leading bits.
- InStorageType x_mant = x_bits.get_explicit_mantissa();
- InStorageType y_mant = y_bits.get_explicit_mantissa();
- TmpResultType z_mant = z_bits.get_explicit_mantissa();
-
- // If the exponent of the product x*y > the exponent of z, then no extra
- // precision beside the entire product x*y is needed. On the other hand, when
- // the exponent of z >= the exponent of the product x*y, the worst-case that
- // we need extra precision is when there is cancellation and the most
- // significant bit of the product is aligned exactly with the second most
- // significant bit of z:
- // z : 10aa...a
- // - prod : 1bb...bb....b
- // In that case, in order to store the exact result, we need at least
- // (Length of prod) - (Fraction length of z)
- // = 2*(Length of input explicit mantissa) - (Fraction length of z) bits.
- // Overall, before aligning the mantissas and exponents, we can simply left-
- // shift the mantissa of z by that amount. After that, it is enough to align
- // the least significant bit, given that we keep track of the round and sticky
- // bits after the least significant bit.
-
- TmpResultType prod_mant = TmpResultType(x_mant) * y_mant;
- int prod_lsb_exp =
- x_exp + y_exp - (InFPBits::EXP_BIAS + 2 * InFPBits::FRACTION_LEN);
-
- constexpr int RESULT_MIN_LEN = PROD_LEN - InFPBits::FRACTION_LEN;
- z_mant <<= RESULT_MIN_LEN;
- int z_lsb_exp = z_exp - (InFPBits::FRACTION_LEN + RESULT_MIN_LEN);
- bool sticky_bits = false;
- bool z_shifted = false;
-
- // Align exponents.
- if (prod_lsb_exp < z_lsb_exp) {
- sticky_bits = internal::shift_mantissa(z_lsb_exp - prod_lsb_exp, prod_mant);
- prod_lsb_exp = z_lsb_exp;
- } else if (z_lsb_exp < prod_lsb_exp) {
- z_shifted = true;
- sticky_bits = internal::shift_mantissa(prod_lsb_exp - z_lsb_exp, z_mant);
- }
-
- // Perform the addition:
- // (-1)^prod_sign * prod_mant + (-1)^z_sign * z_mant.
- // The final result will be stored in prod_sign and prod_mant.
- if (prod_sign == z_sign) {
- // Effectively an addition.
- prod_mant += z_mant;
- } else {
- // Subtraction cases.
- if (prod_mant >= z_mant) {
- if (z_shifted && sticky_bits) {
- // Add 1 more to the subtrahend so that the sticky bits remain
- // positive. This would simplify the rounding logic.
- ++z_mant;
- }
- prod_mant -= z_mant;
- } else {
- if (!z_shifted && sticky_bits) {
- // Add 1 more to the subtrahend so that the sticky bits remain
- // positive. This would simplify the rounding logic.
- ++prod_mant;
- }
- prod_mant = z_mant - prod_mant;
- prod_sign = z_sign;
- }
- }
-
- if (prod_mant == 0) {
- // When there is exact cancellation, i.e., x*y == -z exactly, return -0.0 if
- // rounding downward and +0.0 for other rounding modes.
- if (quick_get_round() == FE_DOWNWARD)
- prod_sign = Sign::NEG;
- else
- prod_sign = Sign::POS;
- }
-
- DyadicFloat result(prod_sign, prod_lsb_exp - InFPBits::EXP_BIAS, prod_mant);
- result.mantissa |= static_cast<unsigned int>(sticky_bits);
- return result.template as<OutType, /*ShouldSignalExceptions=*/true>();
-}
-
-} // namespace generic
-} // namespace fputil
-} // namespace LIBC_NAMESPACE_DECL
-
-#endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
+//===-- Common header for FMA implementations -------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
+#define LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
+
+#include "src/__support/CPP/bit.h"
+#include "src/__support/CPP/limits.h"
+#include "src/__support/CPP/type_traits.h"
+#include "src/__support/FPUtil/BasicOperations.h"
+#include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/FPUtil/cast.h"
+#include "src/__support/FPUtil/dyadic_float.h"
+#include "src/__support/FPUtil/rounding_mode.h"
+#include "src/__support/big_int.h"
+#include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
+
+#include "hdr/fenv_macros.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
+namespace generic {
+
+template <typename OutType, typename InType>
+LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
+ cpp::is_floating_point_v<InType> &&
+ sizeof(OutType) <= sizeof(InType),
+ OutType>
+fma(InType x, InType y, InType z);
+
+// TODO(lntue): Implement fmaf that is correctly rounded to all rounding modes.
+// The implementation below only is only correct for the default rounding mode,
+// round-to-nearest tie-to-even.
+template <> LIBC_INLINE float fma<float>(float x, float y, float z) {
+ // Product is exact.
+ double prod = static_cast<double>(x) * static_cast<double>(y);
+ double z_d = static_cast<double>(z);
+ double sum = prod + z_d;
+ fputil::FPBits<double> bit_prod(prod), bitz(z_d), bit_sum(sum);
+
+ if (!(bit_sum.is_inf_or_nan() || bit_sum.is_zero())) {
+ // Since the sum is computed in double precision, rounding might happen
+ // (for instance, when bitz.exponent > bit_prod.exponent + 5, or
+ // bit_prod.exponent > bitz.exponent + 40). In that case, when we round
+ // the sum back to float, double rounding error might occur.
+ // A concrete example of this phenomenon is as follows:
+ // x = y = 1 + 2^(-12), z = 2^(-53)
+ // The exact value of x*y + z is 1 + 2^(-11) + 2^(-24) + 2^(-53)
+ // So when rounding to float, fmaf(x, y, z) = 1 + 2^(-11) + 2^(-23)
+ // On the other hand, with the default rounding mode,
+ // double(x*y + z) = 1 + 2^(-11) + 2^(-24)
+ // and casting again to float gives us:
+ // float(double(x*y + z)) = 1 + 2^(-11).
+ //
+ // In order to correct this possible double rounding error, first we use
+ // Dekker's 2Sum algorithm to find t such that sum - t = prod + z exactly,
+ // assuming the (default) rounding mode is round-to-the-nearest,
+ // tie-to-even. Moreover, t satisfies the condition that t < eps(sum),
+ // i.e., t.exponent < sum.exponent - 52. So if t is not 0, meaning rounding
+ // occurs when computing the sum, we just need to use t to adjust (any) last
+ // bit of sum, so that the sticky bits used when rounding sum to float are
+ // correct (when it matters).
+ fputil::FPBits<double> t(
+ (bit_prod.get_biased_exponent() >= bitz.get_biased_exponent())
+ ? ((bit_sum.get_val() - bit_prod.get_val()) - bitz.get_val())
+ : ((bit_sum.get_val() - bitz.get_val()) - bit_prod.get_val()));
+
+ // Update sticky bits if t != 0.0 and the least (52 - 23 - 1 = 28) bits are
+ // zero.
+ if (!t.is_zero() && ((bit_sum.get_mantissa() & 0xfff'ffffULL) == 0)) {
+ if (bit_sum.sign() != t.sign())
+ bit_sum.set_mantissa(bit_sum.get_mantissa() + 1);
+ else if (bit_sum.get_mantissa())
+ bit_sum.set_mantissa(bit_sum.get_mantissa() - 1);
+ }
+ }
+
+ return static_cast<float>(bit_sum.get_val());
+}
+
+namespace internal {
+
+// Extract the sticky bits and shift the `mantissa` to the right by
+// `shift_length`.
+template <typename T>
+LIBC_INLINE cpp::enable_if_t<is_unsigned_integral_or_big_int_v<T>, bool>
+shift_mantissa(int shift_length, T &mant) {
+ if (shift_length >= cpp::numeric_limits<T>::digits) {
+ mant = 0;
+ return true; // prod_mant is non-zero.
+ }
+ T mask = (T(1) << shift_length) - 1;
+ bool sticky_bits = (mant & mask) != 0;
+ mant >>= shift_length;
+ return sticky_bits;
+}
+
+} // namespace internal
+
+template <typename OutType, typename InType>
+LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
+ cpp::is_floating_point_v<InType> &&
+ sizeof(OutType) <= sizeof(InType),
+ OutType>
+fma(InType x, InType y, InType z) {
+ using OutFPBits = FPBits<OutType>;
+ using OutStorageType = typename OutFPBits::StorageType;
+ using InFPBits = FPBits<InType>;
+ using InStorageType = typename InFPBits::StorageType;
+
+ constexpr int IN_EXPLICIT_MANT_LEN = InFPBits::FRACTION_LEN + 1;
+ constexpr size_t PROD_LEN = 2 * IN_EXPLICIT_MANT_LEN;
+ constexpr size_t TMP_RESULT_LEN = cpp::bit_ceil(PROD_LEN + 1);
+ using TmpResultType = UInt<TMP_RESULT_LEN>;
+ using DyadicFloat = DyadicFloat<TMP_RESULT_LEN>;
+
+ InFPBits x_bits(x), y_bits(y), z_bits(z);
+
+ if (LIBC_UNLIKELY(x_bits.is_nan() || y_bits.is_nan() || z_bits.is_nan())) {
+ if (x_bits.is_nan() || y_bits.is_nan()) {
+ if (x_bits.is_signaling_nan() || y_bits.is_signaling_nan() ||
+ z_bits.is_signaling_nan())
+ raise_except_if_required(FE_INVALID);
+
+ if (x_bits.is_quiet_nan()) {
+ InStorageType x_payload = x_bits.get_mantissa();
+ x_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
+ return OutFPBits::quiet_nan(x_bits.sign(),
+ static_cast<OutStorageType>(x_payload))
+ .get_val();
+ }
+
+ if (y_bits.is_quiet_nan()) {
+ InStorageType y_payload = y_bits.get_mantissa();
+ y_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
+ return OutFPBits::quiet_nan(y_bits.sign(),
+ static_cast<OutStorageType>(y_payload))
+ .get_val();
+ }
+
+ if (z_bits.is_quiet_nan()) {
+ InStorageType z_payload = z_bits.get_mantissa();
+ z_payload >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
+ return OutFPBits::quiet_nan(z_bits.sign(),
+ static_cast<OutStorageType>(z_payload))
+ .get_val();
+ }
+
+ return OutFPBits::quiet_nan().get_val();
+ }
+ }
+
+ if (LIBC_UNLIKELY(x == 0 || y == 0 || z == 0))
+ return cast<OutType>(x * y + z);
+
+ int x_exp = 0;
+ int y_exp = 0;
+ int z_exp = 0;
+
+ // Denormal scaling = 2^(fraction length).
+ constexpr InStorageType IMPLICIT_MASK =
+ InFPBits::SIG_MASK - InFPBits::FRACTION_MASK;
+
+ constexpr InType DENORMAL_SCALING =
+ InFPBits::create_value(
+ Sign::POS, InFPBits::FRACTION_LEN + InFPBits::EXP_BIAS, IMPLICIT_MASK)
+ .get_val();
+
+ // Normalize denormal inputs.
+ if (LIBC_UNLIKELY(InFPBits(x).is_subnormal())) {
+ x_exp -= InFPBits::FRACTION_LEN;
+ x *= DENORMAL_SCALING;
+ }
+ if (LIBC_UNLIKELY(InFPBits(y).is_subnormal())) {
+ y_exp -= InFPBits::FRACTION_LEN;
+ y *= DENORMAL_SCALING;
+ }
+ if (LIBC_UNLIKELY(InFPBits(z).is_subnormal())) {
+ z_exp -= InFPBits::FRACTION_LEN;
+ z *= DENORMAL_SCALING;
+ }
+
+ x_bits = InFPBits(x);
+ y_bits = InFPBits(y);
+ z_bits = InFPBits(z);
+ const Sign z_sign = z_bits.sign();
+ Sign prod_sign = (x_bits.sign() == y_bits.sign()) ? Sign::POS : Sign::NEG;
+ x_exp += x_bits.get_biased_exponent();
+ y_exp += y_bits.get_biased_exponent();
+ z_exp += z_bits.get_biased_exponent();
+
+ if (LIBC_UNLIKELY(x_exp != InFPBits::MAX_BIASED_EXPONENT &&
+ y_exp != InFPBits::MAX_BIASED_EXPONENT &&
+ z_bits.is_inf()))
+ return cast<OutType>(z);
+
+ if (LIBC_UNLIKELY(x_exp == InFPBits::MAX_BIASED_EXPONENT ||
+ y_exp == InFPBits::MAX_BIASED_EXPONENT ||
+ z_exp == InFPBits::MAX_BIASED_EXPONENT))
+ return cast<OutType>(x * y + z);
+
+ // Extract mantissa and append hidden leading bits.
+ InStorageType x_mant = x_bits.get_explicit_mantissa();
+ InStorageType y_mant = y_bits.get_explicit_mantissa();
+ TmpResultType z_mant = z_bits.get_explicit_mantissa();
+
+ // If the exponent of the product x*y > the exponent of z, then no extra
+ // precision beside the entire product x*y is needed. On the other hand, when
+ // the exponent of z >= the exponent of the product x*y, the worst-case that
+ // we need extra precision is when there is cancellation and the most
+ // significant bit of the product is aligned exactly with the second most
+ // significant bit of z:
+ // z : 10aa...a
+ // - prod : 1bb...bb....b
+ // In that case, in order to store the exact result, we need at least
+ // (Length of prod) - (Fraction length of z)
+ // = 2*(Length of input explicit mantissa) - (Fraction length of z) bits.
+ // Overall, before aligning the mantissas and exponents, we can simply left-
+ // shift the mantissa of z by that amount. After that, it is enough to align
+ // the least significant bit, given that we keep track of the round and sticky
+ // bits after the least significant bit.
+
+ TmpResultType prod_mant = TmpResultType(x_mant) * y_mant;
+ int prod_lsb_exp =
+ x_exp + y_exp - (InFPBits::EXP_BIAS + 2 * InFPBits::FRACTION_LEN);
+
+ constexpr int RESULT_MIN_LEN = PROD_LEN - InFPBits::FRACTION_LEN;
+ z_mant <<= RESULT_MIN_LEN;
+ int z_lsb_exp = z_exp - (InFPBits::FRACTION_LEN + RESULT_MIN_LEN);
+ bool sticky_bits = false;
+ bool z_shifted = false;
+
+ // Align exponents.
+ if (prod_lsb_exp < z_lsb_exp) {
+ sticky_bits = internal::shift_mantissa(z_lsb_exp - prod_lsb_exp, prod_mant);
+ prod_lsb_exp = z_lsb_exp;
+ } else if (z_lsb_exp < prod_lsb_exp) {
+ z_shifted = true;
+ sticky_bits = internal::shift_mantissa(prod_lsb_exp - z_lsb_exp, z_mant);
+ }
+
+ // Perform the addition:
+ // (-1)^prod_sign * prod_mant + (-1)^z_sign * z_mant.
+ // The final result will be stored in prod_sign and prod_mant.
+ if (prod_sign == z_sign) {
+ // Effectively an addition.
+ prod_mant += z_mant;
+ } else {
+ // Subtraction cases.
+ if (prod_mant >= z_mant) {
+ if (z_shifted && sticky_bits) {
+ // Add 1 more to the subtrahend so that the sticky bits remain
+ // positive. This would simplify the rounding logic.
+ ++z_mant;
+ }
+ prod_mant -= z_mant;
+ } else {
+ if (!z_shifted && sticky_bits) {
+ // Add 1 more to the subtrahend so that the sticky bits remain
+ // positive. This would simplify the rounding logic.
+ ++prod_mant;
+ }
+ prod_mant = z_mant - prod_mant;
+ prod_sign = z_sign;
+ }
+ }
+
+ if (prod_mant == 0) {
+ // When there is exact cancellation, i.e., x*y == -z exactly, return -0.0 if
+ // rounding downward and +0.0 for other rounding modes.
+ if (quick_get_round() == FE_DOWNWARD)
+ prod_sign = Sign::NEG;
+ else
+ prod_sign = Sign::POS;
+ }
+
+ DyadicFloat result(prod_sign, prod_lsb_exp - InFPBits::EXP_BIAS, prod_mant);
+ result.mantissa |= static_cast<unsigned int>(sticky_bits);
+ return result.template as<OutType, /*ShouldSignalExceptions=*/true>();
+}
+
+} // namespace generic
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 23727022a444b..9e576a80295a0 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -137,9 +137,10 @@ TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
}
- mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
+ bfloat16 neg_xy = -(x * y);
+ mpfr::TernaryInput<bfloat16> input{x, y, neg_xy};
EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
- LIBC_NAMESPACE::fmabf16(x, y, -x * y),
+ LIBC_NAMESPACE::fmabf16(x, y, neg_xy),
0.5);
}
}
>From c63d72479a0dd2e788bdb75641b98cd60c0d0ab0 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 17:15:03 +0530
Subject: [PATCH 37/43] final commit before PR
---
libc/src/__support/FPUtil/generic/FMA.h | 5 +-
libc/test/src/math/fmabf16_test.cpp | 99 -------------------------
2 files changed, 2 insertions(+), 102 deletions(-)
diff --git a/libc/src/__support/FPUtil/generic/FMA.h b/libc/src/__support/FPUtil/generic/FMA.h
index dc45957f80ff4..e9652cd30066a 100644
--- a/libc/src/__support/FPUtil/generic/FMA.h
+++ b/libc/src/__support/FPUtil/generic/FMA.h
@@ -18,7 +18,7 @@
#include "src/__support/FPUtil/dyadic_float.h"
#include "src/__support/FPUtil/rounding_mode.h"
#include "src/__support/big_int.h"
-#include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/attributes.h" // LIBC_INLINE
#include "src/__support/macros/config.h"
#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
@@ -197,8 +197,7 @@ fma(InType x, InType y, InType z) {
z_exp += z_bits.get_biased_exponent();
if (LIBC_UNLIKELY(x_exp != InFPBits::MAX_BIASED_EXPONENT &&
- y_exp != InFPBits::MAX_BIASED_EXPONENT &&
- z_bits.is_inf()))
+ y_exp != InFPBits::MAX_BIASED_EXPONENT && z_bits.is_inf()))
return cast<OutType>(z);
if (LIBC_UNLIKELY(x_exp == InFPBits::MAX_BIASED_EXPONENT ||
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 9e576a80295a0..408a17c49a2c5 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -16,109 +16,10 @@ using LlvmLibcFmaBf16Test = LIBC_NAMESPACE::testing::FPTest<bfloat16>;
namespace mpfr = LIBC_NAMESPACE::testing::mpfr;
-// range: [0, inf]
-static constexpr uint16_t POS_START = 0x0000U;
-static constexpr uint16_t POS_STOP = 0x7f80U;
-
-// range: [-0, -inf]
-static constexpr uint16_t NEG_START = 0x8000U;
-static constexpr uint16_t NEG_STOP = 0xff80U;
-
-// subnormal range (positive)
-static constexpr uint16_t SUBNORM_POS_START = 0x0001U;
-static constexpr uint16_t SUBNORM_POS_STOP = 0x007FU;
-
// subnormal range (negative)
static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
-// static constexpr uint16_t STEP = 512;
-
-// TEST_F(LlvmLibcFmaBf16Test, PositiveRange) {
-
-// const bfloat16 z_values[] = {zero,
-// neg_zero,
-// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
-// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
-// inf,
-// neg_inf,
-// min_normal,
-// max_normal};
-// for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
-// for (uint16_t v2 = POS_START; v2 <= POS_STOP; v2 += STEP) {
-
-// bfloat16 x = FPBits(v1).get_val();
-// bfloat16 y = FPBits(v2).get_val();
-
-// for (bfloat16 z : z_values) {
-// mpfr::TernaryInput<bfloat16> input{x, y, z};
-
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
-// }
-// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
-// 0.5);
-// }
-// }
-// }
-
-// TEST_F(LlvmLibcFmaBf16Test, NegativeRange) {
-// const bfloat16 z_values[] = {zero,
-// neg_zero,
-// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
-// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
-// inf,
-// neg_inf,
-// min_normal,
-// max_normal};
-// for (uint16_t v1 = NEG_START; v1 <= NEG_STOP; v1 += STEP) {
-// for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
-// bfloat16 x = FPBits(v1).get_val();
-// bfloat16 y = FPBits(v2).get_val();
-// for (bfloat16 z : z_values) {
-// mpfr::TernaryInput<bfloat16> input{x, y, z};
-
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
-// }
-// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
-// 0.5);
-// }
-// }
-// }
-// TEST_F(LlvmLibcFmaBf16Test, OppositeSignRange) {
-// const bfloat16 z_values[] = {zero,
-// neg_zero,
-// FPBits(static_cast<uint16_t>(0x3f80U)).get_val(),
-// FPBits(static_cast<uint16_t>(0xbf80U)).get_val(),
-// inf,
-// neg_inf,
-// min_normal,
-// max_normal};
-// for (uint16_t v1 = POS_START; v1 <= POS_STOP; v1 += STEP) {
-// for (uint16_t v2 = NEG_START; v2 <= NEG_STOP; v2 += STEP) {
-
-// bfloat16 x = FPBits(v1).get_val();
-// bfloat16 y = FPBits(v2).get_val();
-// for (bfloat16 z : z_values) {
-// mpfr::TernaryInput<bfloat16> input{x, y, z};
-
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, z), 0.5);
-// }
-// mpfr::TernaryInput<bfloat16> input{x, y, -x * y};
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Fma, input,
-// LIBC_NAMESPACE::fmabf16(x, y, -x * y),
-// 0.5);
-// }
-// }
-// }
-
TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
const bfloat16 z_values[] = {zero,
neg_zero,
>From 1e6f1a3f6b302f2d9f4016170972bcae7247680f Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 17:19:23 +0530
Subject: [PATCH 38/43] if change 1 needed
---
libc/src/__support/FPUtil/generic/add_sub.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libc/src/__support/FPUtil/generic/add_sub.h b/libc/src/__support/FPUtil/generic/add_sub.h
index 0d7aee37cee5e..c90268035d860 100644
--- a/libc/src/__support/FPUtil/generic/add_sub.h
+++ b/libc/src/__support/FPUtil/generic/add_sub.h
@@ -96,16 +96,16 @@ add_or_sub(InType x, InType y) {
if (x_bits.is_zero()) {
if (y_bits.is_zero()) {
- if (is_effectively_add) {
- return OutFPBits::zero(x_bits.sign()).get_val();
- } else {
+ // if (is_effectively_add) {
+ // return OutFPBits::zero(x_bits.sign()).get_val();
+ // } else {
switch (quick_get_round()) {
case FE_DOWNWARD:
return OutFPBits::zero(Sign::NEG).get_val();
default:
return OutFPBits::zero(Sign::POS).get_val();
}
- }
+ // }
}
if constexpr (cpp::is_same_v<InType, bfloat16> &&
>From 30c9bde3e5ce12b34ad48f7839caa00705d4f26a Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 17:25:55 +0530
Subject: [PATCH 39/43] +0 -0 condn needed as gives output sign mismatch
---
libc/src/__support/FPUtil/generic/add_sub.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libc/src/__support/FPUtil/generic/add_sub.h b/libc/src/__support/FPUtil/generic/add_sub.h
index c90268035d860..0d7aee37cee5e 100644
--- a/libc/src/__support/FPUtil/generic/add_sub.h
+++ b/libc/src/__support/FPUtil/generic/add_sub.h
@@ -96,16 +96,16 @@ add_or_sub(InType x, InType y) {
if (x_bits.is_zero()) {
if (y_bits.is_zero()) {
- // if (is_effectively_add) {
- // return OutFPBits::zero(x_bits.sign()).get_val();
- // } else {
+ if (is_effectively_add) {
+ return OutFPBits::zero(x_bits.sign()).get_val();
+ } else {
switch (quick_get_round()) {
case FE_DOWNWARD:
return OutFPBits::zero(Sign::NEG).get_val();
default:
return OutFPBits::zero(Sign::POS).get_val();
}
- // }
+ }
}
if constexpr (cpp::is_same_v<InType, bfloat16> &&
>From cfccbe2f9c2f370a1b11e1472f9c2ad88f0ae1f0 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 17:49:09 +0530
Subject: [PATCH 40/43] format
---
libc/src/math/generic/fmabf16.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libc/src/math/generic/fmabf16.cpp b/libc/src/math/generic/fmabf16.cpp
index 233dbc9089f9c..ab221dd19ac8d 100644
--- a/libc/src/math/generic/fmabf16.cpp
+++ b/libc/src/math/generic/fmabf16.cpp
@@ -7,9 +7,9 @@
//===----------------------------------------------------------------------===//
#include "src/math/fmabf16.h"
-#include "src/__support/common.h"
#include "src/__support/FPUtil/FMA.h"
#include "src/__support/FPUtil/bfloat16.h"
+#include "src/__support/common.h"
#include "src/__support/macros/config.h"
namespace LIBC_NAMESPACE_DECL {
>From a26bb5a8a0be348fbb5caf47222293238e6f3151 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 17:58:13 +0530
Subject: [PATCH 41/43] formatted acc to gitac
---
libc/test/src/math/fmabf16_test.cpp | 32 +++++++---------------------
libc/utils/MPFRWrapper/MPFRUtils.cpp | 7 +++---
2 files changed, 11 insertions(+), 28 deletions(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 408a17c49a2c5..0b36b882c06e8 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -21,12 +21,8 @@ static constexpr uint16_t SUBNORM_NEG_START = 0x8001U;
static constexpr uint16_t SUBNORM_NEG_STOP = 0x807FU;
TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
- const bfloat16 z_values[] = {zero,
- neg_zero,
- inf,
- neg_inf,
- min_normal,
- max_normal};
+ const bfloat16 z_values[] = {zero, neg_zero, inf,
+ neg_inf, min_normal, max_normal};
for (uint16_t v1 = SUBNORM_NEG_START; v1 <= SUBNORM_NEG_STOP; v1++) {
for (uint16_t v2 = SUBNORM_NEG_START; v2 <= SUBNORM_NEG_STOP; v2++) {
@@ -49,24 +45,12 @@ TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
- const bfloat16 z_values[] = {zero,
- neg_zero,
- inf,
- neg_inf,
- min_normal,
- max_normal};
- const bfloat16 x_values[] = {zero,
- neg_zero,
- inf,
- neg_inf,
- min_normal,
- max_normal};
- const bfloat16 y_values[] = {zero,
- neg_zero,
- inf,
- neg_inf,
- min_normal,
- max_normal};
+ const bfloat16 z_values[] = {zero, neg_zero, inf,
+ neg_inf, min_normal, max_normal};
+ const bfloat16 x_values[] = {zero, neg_zero, inf,
+ neg_inf, min_normal, max_normal};
+ const bfloat16 y_values[] = {zero, neg_zero, inf,
+ neg_inf, min_normal, max_normal};
for (bfloat16 x : x_values) {
for (bfloat16 y : y_values) {
diff --git a/libc/utils/MPFRWrapper/MPFRUtils.cpp b/libc/utils/MPFRWrapper/MPFRUtils.cpp
index 22617c0ee3f99..4c5c891bcfe9a 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.cpp
+++ b/libc/utils/MPFRWrapper/MPFRUtils.cpp
@@ -764,10 +764,9 @@ compare_ternary_operation_one_output(Operation,
double, RoundingMode);
#endif
-template bool compare_ternary_operation_one_output(Operation,
- const TernaryInput<bfloat16> &,
- bfloat16, double,
- RoundingMode);
+template bool
+compare_ternary_operation_one_output(Operation, const TernaryInput<bfloat16> &,
+ bfloat16, double, RoundingMode);
template bool compare_ternary_operation_one_output(Operation,
const TernaryInput<float> &,
bfloat16, double,
>From fc4d4845627165c802344e1e4433b4f9870d58c7 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 18:06:20 +0530
Subject: [PATCH 42/43] line-space
---
libc/test/src/math/fmabf16_test.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/libc/test/src/math/fmabf16_test.cpp b/libc/test/src/math/fmabf16_test.cpp
index 0b36b882c06e8..565225bcb71bf 100644
--- a/libc/test/src/math/fmabf16_test.cpp
+++ b/libc/test/src/math/fmabf16_test.cpp
@@ -43,7 +43,6 @@ TEST_F(LlvmLibcFmaBf16Test, SubnormalNegativeRange) {
}
}
-
TEST_F(LlvmLibcFmaBf16Test, SpecialNumbers) {
const bfloat16 z_values[] = {zero, neg_zero, inf,
neg_inf, min_normal, max_normal};
>From d260d1f1e1b4544e97e6bec68504d0d1218108fc Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 23 Feb 2026 21:51:20 +0530
Subject: [PATCH 43/43] shifted (norm,norm,INF) condn + moved Bfloat16 *=
operator
---
libc/src/__support/FPUtil/bfloat16.h | 5 -----
libc/src/__support/FPUtil/generic/FMA.h | 11 ++++++-----
2 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/libc/src/__support/FPUtil/bfloat16.h b/libc/src/__support/FPUtil/bfloat16.h
index 7d64b441bf9b2..13e151208567d 100644
--- a/libc/src/__support/FPUtil/bfloat16.h
+++ b/libc/src/__support/FPUtil/bfloat16.h
@@ -113,11 +113,6 @@ struct BFloat16 {
LIBC_INLINE BFloat16 operator/(BFloat16 other) const {
return fputil::generic::div<bfloat16>(*this, other);
}
-
- LIBC_INLINE BFloat16 &operator*=(const BFloat16 &other) {
- *this = *this * other;
- return *this;
- }
}; // struct BFloat16
} // namespace fputil
diff --git a/libc/src/__support/FPUtil/generic/FMA.h b/libc/src/__support/FPUtil/generic/FMA.h
index e9652cd30066a..e9023a8e09d5c 100644
--- a/libc/src/__support/FPUtil/generic/FMA.h
+++ b/libc/src/__support/FPUtil/generic/FMA.h
@@ -196,14 +196,15 @@ fma(InType x, InType y, InType z) {
y_exp += y_bits.get_biased_exponent();
z_exp += z_bits.get_biased_exponent();
- if (LIBC_UNLIKELY(x_exp != InFPBits::MAX_BIASED_EXPONENT &&
- y_exp != InFPBits::MAX_BIASED_EXPONENT && z_bits.is_inf()))
- return cast<OutType>(z);
-
if (LIBC_UNLIKELY(x_exp == InFPBits::MAX_BIASED_EXPONENT ||
y_exp == InFPBits::MAX_BIASED_EXPONENT ||
- z_exp == InFPBits::MAX_BIASED_EXPONENT))
+ z_exp == InFPBits::MAX_BIASED_EXPONENT)) {
+ if (LIBC_UNLIKELY(x_exp != InFPBits::MAX_BIASED_EXPONENT &&
+ y_exp != InFPBits::MAX_BIASED_EXPONENT &&
+ z_bits.is_inf()))
+ return cast<OutType>(z);
return cast<OutType>(x * y + z);
+ }
// Extract mantissa and append hidden leading bits.
InStorageType x_mant = x_bits.get_explicit_mantissa();
More information about the libc-commits
mailing list