Krishna Pandey 550dbec03a
[libc][math][c++23] Add {,u}fromfp{,x}bf16 math functions (#153992)
This PR adds the following basic math functions for BFloat16 type along
with the tests:
- fromfpbf16
- fromfpxbf16
- ufromfpbf16
- ufromfpxbf16

---------

Signed-off-by: Krishna Pandey <kpandey81930@gmail.com>
2025-08-19 22:19:03 +05:30

277 lines
7.0 KiB
Plaintext

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.ceilbf16
libc.src.math.fabsbf16
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.fromfpbf16
libc.src.math.fromfpxbf16
libc.src.math.roundbf16
libc.src.math.roundevenbf16
libc.src.math.truncbf16
libc.src.math.ufromfpbf16
libc.src.math.ufromfpxbf16
)
set(TARGET_LLVMLIBC_ENTRYPOINTS
${TARGET_LIBC_ENTRYPOINTS}
${TARGET_LIBM_ENTRYPOINTS}
)