diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt index 683c7464abde9..af9f687e8fcd8 100644 --- a/libc/config/baremetal/aarch64/entrypoints.txt +++ b/libc/config/baremetal/aarch64/entrypoints.txt @@ -757,6 +757,12 @@ endif() list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 @@ -765,6 +771,14 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.truncbf16 ) +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.bf16subf128 + ) +endif() + if(LIBC_COMPILER_HAS_FIXED_POINT) list(APPEND TARGET_LIBM_ENTRYPOINTS # stdfix.h _Fract and _Accum entrypoints diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt index f8ecc2ea8a3a4..ce8d7c0d13b76 100644 --- a/libc/config/baremetal/arm/entrypoints.txt +++ b/libc/config/baremetal/arm/entrypoints.txt @@ -760,6 +760,12 @@ endif() list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 @@ -768,6 +774,14 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.truncbf16 ) +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.bf16subf128 + ) +endif() + if(LIBC_COMPILER_HAS_FIXED_POINT) list(APPEND TARGET_LIBM_ENTRYPOINTS # stdfix.h _Fract and _Accum entrypoints diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt index 679bfb3803686..7eeec245a31dd 100644 --- a/libc/config/baremetal/riscv/entrypoints.txt +++ b/libc/config/baremetal/riscv/entrypoints.txt @@ -760,6 +760,12 @@ endif() list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 @@ -768,6 +774,14 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.truncbf16 ) +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.bf16subf128 + ) +endif() + if(LIBC_COMPILER_HAS_FIXED_POINT) list(APPEND TARGET_LIBM_ENTRYPOINTS # stdfix.h _Fract and _Accum entrypoints diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt index 72b0265552ab8..de4b4df024ca1 100644 --- a/libc/config/darwin/aarch64/entrypoints.txt +++ b/libc/config/darwin/aarch64/entrypoints.txt @@ -590,6 +590,12 @@ endif() list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 @@ -598,6 +604,14 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.truncbf16 ) +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.bf16subf128 + ) +endif() + if(LIBC_COMPILER_HAS_FIXED_POINT) list(APPEND TARGET_LIBM_ENTRYPOINTS # stdfix.h _Fract and _Accum entrypoints diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt index b5ab1ee26a867..f668e8a6ebff3 100644 --- a/libc/config/darwin/x86_64/entrypoints.txt +++ b/libc/config/darwin/x86_64/entrypoints.txt @@ -233,6 +233,12 @@ set(TARGET_LIBM_ENTRYPOINTS list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt index 77a13a66da545..f7b8b2f66c230 100644 --- a/libc/config/gpu/amdgpu/entrypoints.txt +++ b/libc/config/gpu/amdgpu/entrypoints.txt @@ -616,6 +616,12 @@ endif() list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt index 61c9c717d37ef..23afb40904836 100644 --- a/libc/config/gpu/nvptx/entrypoints.txt +++ b/libc/config/gpu/nvptx/entrypoints.txt @@ -617,6 +617,12 @@ endif() list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt index fbdf8fb621b0f..62a3ae9b2fa96 100644 --- a/libc/config/linux/aarch64/entrypoints.txt +++ b/libc/config/linux/aarch64/entrypoints.txt @@ -844,6 +844,12 @@ endif() list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 @@ -852,6 +858,14 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.truncbf16 ) +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.bf16subf128 + ) +endif() + if(LLVM_LIBC_FULL_BUILD) list(APPEND TARGET_LIBC_ENTRYPOINTS # assert.h entrypoints diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt index e3f5feecc896a..eedf184384c19 100644 --- a/libc/config/linux/arm/entrypoints.txt +++ b/libc/config/linux/arm/entrypoints.txt @@ -460,6 +460,12 @@ set(TARGET_LIBM_ENTRYPOINTS list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt index ba67dddbe8b98..cd569795ce438 100644 --- a/libc/config/linux/riscv/entrypoints.txt +++ b/libc/config/linux/riscv/entrypoints.txt @@ -863,6 +863,12 @@ endif() list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16 @@ -871,6 +877,14 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.truncbf16 ) +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.bf16subf128 + ) +endif() + if(LIBC_COMPILER_HAS_FIXED_POINT) list(APPEND TARGET_LIBM_ENTRYPOINTS # stdfix.h _Fract and _Accum entrypoints diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt index 0a2b24b420ac2..2b0cf33dd67f4 100644 --- a/libc/config/linux/x86_64/entrypoints.txt +++ b/libc/config/linux/x86_64/entrypoints.txt @@ -895,13 +895,13 @@ endif() list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints - libc.src.math.ceilbf16 libc.src.math.bf16add libc.src.math.bf16addf libc.src.math.bf16addl 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.roundbf16 diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt index 994078c0ed274..1b1db5e5076b4 100644 --- a/libc/config/windows/entrypoints.txt +++ b/libc/config/windows/entrypoints.txt @@ -306,6 +306,12 @@ set(TARGET_LIBM_ENTRYPOINTS list(APPEND TARGET_LIBM_ENTRYPOINTS # bfloat16 entrypoints + libc.src.math.bf16add + libc.src.math.bf16addf + libc.src.math.bf16addl + libc.src.math.bf16sub + libc.src.math.bf16subf + libc.src.math.bf16subl libc.src.math.ceilbf16 libc.src.math.fabsbf16 libc.src.math.floorbf16