203 Commits

Author SHA1 Message Date
Zorojuro
7d7cd745af
[libc][math][c23] Add atanbf16 function (#184019)
This PR intends to add atanbf16 higher math function for BFloat16 type
along with the tests.
2026-03-21 11:09:11 -04:00
Mohamed Emad
4db2ce4d54
[libc][math] Refactor dadd family to header-only (#182142)
Closes https://github.com/llvm/llvm-project/issues/182141
2026-03-19 06:37:35 +02:00
Manthan Singla
42b75ed85f
[libc][math] Refactor bf16divf128 to Header Only (#186641)
closes #181024
2026-03-19 01:47:22 +02:00
Muhammad Bassiouni
bed5e7dc20
[libc][math] Refactor fmaf16 implementation to header-only in src/__support/math folder. (#163977) 2026-03-17 21:35:08 +02:00
Muhammad Bassiouni
e6f0ec8343
[libc][math] Refactor fmaf implementation to header-only in src/__support/math folder. (#163970)
Part of #147386

in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450
2026-03-17 21:33:06 +02:00
Muhammad Bassiouni
d0d1f0b7af
[libc][math] Refactor fma implementation to header-only in src/__support/math folder. (#163968)
Part of #147386

in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450
2026-03-17 21:24:27 +02:00
Zorojuro
0a3384b969
[libc][math] Refactor log_bf16 to Header (#186618) 2026-03-16 17:13:19 +00:00
Anirudh Mathur
6e224cede2
[libc][math] Refactor bf16fma to Header Only (#182572)
Fixes #181625
2026-03-16 17:05:54 +00:00
Abhijeet
cf979d5a96
[libc][math] Refactored atanpif16 to header only (#184316)
Fixes #178105
2026-03-16 18:57:29 +02:00
Xinlong Chen
458096d5f8
[libc][math][c23] Add atan2f16 function (#183531)
Add atan2f16 function

closes https://github.com/llvm/llvm-project/issues/180969
Part of https://github.com/llvm/llvm-project/issues/95250.

also refactor to header only, it's a part of
https://github.com/llvm/llvm-project/issues/147386
2026-03-13 22:12:44 +02:00
sid
bc108761e9
[libc][math] Refactor bf16div to be header-only (#181400)
Closes #181022
Part of #147386
2026-03-13 20:08:00 +00:00
Chinmay Ingle
4fdf089073
[libc][math] Move hypot to shared/math and make it constexpr (#177588)
Closes #175339
2026-03-13 19:57:05 +00:00
Anonmiraj
785581213c
[libc][math] Implement C23 half precision erf function (#179251)
The implementation reuses the approach in `erff`


Closes #133112
2026-03-13 10:16:59 -04:00
Zorojuro
ad054822eb
[libc][math][c23] Add hypotbf16 function (#183460)
This PR intends to add hypotbf16 higher math function for BFloat16 type
along with the tests.
2026-03-13 10:11:33 -04:00
Zorojuro
0bebee6782
[libc][math][c++23] Add Fmabf16 math function (#182836)
closes #180171 
part of #177259 

Here are some extra changes apart from the usual which were needed
1. `libc/src/__support/FPUtil/generic/add_sub.h` → +0 -0 error
2. `libc/src/__support/FPUtil/generic/FMA.h` → implemented to handle
fmabf16(Normal,Normal,+/-INF)

```jsx
/home/runner/work/llvm-project/llvm-project/libc/test/src/math/fmabf16_test.cpp:62: FAILURE
Failed to match __llvm_libc_23_0_0_git::fmabf16(x, y, z) against LIBC_NAMESPACE::testing::mpfr::get_mpfr_matcher<mpfr::Operation::Fma>( input, __llvm_libc_23_0_0_git::fmabf16(x, y, z), 0.5, mpfr::RoundingMode::Nearest).
Input decimal: x: 338953138925153547590470800371487866880.00000000000000000000000000000000000000000000000000 y: 338953138925153547590470800371487866880.00000000000000000000000000000000000000000000000000 z: -inf
 First input bits: 0x7F7F = (S: 0, E: 0x00FE, M: 0x007F)
Second input bits: 0x7F7F = (S: 0, E: 0x00FE, M: 0x007F)
 Third input bits: (-Infinity)
Libc result: nan
MPFR result: -inf
Libc floating point result bits: (NaN)
              MPFR rounded bits: (-Infinity)
```

1. ~~`libc/src/__support/FPUtil/bfloat16.h` → to handle *= operator for
Bfloat16 ( uses the already available mult operator)~~
moved to  #182882 

The exhaustive test currently includes subnormal range and for checking
for specific edge cases . This is due to the repeated failure at <2^32
input space specifically only for ubuntu 24.04 and 24.04-arm
The removed tests included -> PositiveRange and NegativeRange for
Normals and an extra positive test for subnormals/Denormals

Let me know if there are any changes expected or anything I missed in
this .
 cc: @lntue @krishna2803 @overmighty
2026-03-13 05:33:52 +00:00
Zorojuro
9548db811e
[libc][math] Refactor ffmaf128 into a header only. (#184751)
closes #175325 
part of #147386
2026-03-05 23:31:40 +02:00
Muhammad Bassiouni
da8d181905
[libc][math] Cleanup shared/math (#183971) 2026-03-01 04:08:52 +02:00
Mohamed Emad
62cfe1659e
[libc][math][c23] implement C23 acospif math function (#183661)
Implementing C23 `acospi` math function for single-precision with the
header-only approach that is followed since #147386
2026-02-28 04:32:45 +02:00
Mohamed Emad
fb6b470cae
[libc][math] Refactor floor family to header-only (#182194)
Refactors the floor math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182193

Target Functions:
  - floor
  - floorbf16
  - floorf
  - floorf128
  - floorf16
  - floorl
2026-02-28 04:32:22 +02:00
Mohamed Emad
ca04a70891
[libc][math] Refactor bf16sub family to header-only (#182115)
Refactors the bf16sub math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182114

Target Functions:
  - bf16sub
  - bf16subf
  - bf16subf128
2026-02-27 21:38:30 +02:00
Anonmiraj
7e39b280e8
[libc][math] Refactor nextafter family to header-only (#181673)
closes #181672
2026-02-27 01:52:57 +02:00
Zorojuro
27905b1196
[libc][math] Refactor f16sqrtf128 to Header Only. (#183542)
closes  #175328
part of https://github.com/llvm/llvm-project/issues/147386
2026-02-26 20:48:56 +02:00
Weiwen He
3839878d20
[libc][math] Refactor tanpif16 to header-only (#181240)
Part of #147386

in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450

Closes #181207
2026-02-26 17:49:50 +00:00
Mohamed Emad
8f3dd82a0a
[libc][math][c23] implement asinpif function (#181511)
Implementing `asinpi` for single-precision. it continues what is done in
#152690 that implemented `asinpif16` with header-only approach that is
followed since #147386
2026-02-26 05:05:49 +02:00
Mohamed Emad
d7cdfa1096
[libc][math] Refactor fdim family to header-only (#182190)
Refactors the fdim math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182188

Target Functions:
  - fdim
  - fdimbf16
  - fdimf
  - fdimf128
  - fdimf16
  - fdiml
2026-02-25 21:06:01 +00:00
Anonmiraj
bfaa15ee56
[libc][math] Refactor float16 basic operations to header-only (#181745)
closes: #181744
2026-02-25 20:56:33 +02:00
Anonmiraj
d2d862a544
[libc][math] Refactor nexttoward family to header-only (#181685)
Closes https://github.com/llvm/llvm-project/issues/181684
2026-02-25 18:20:18 +00:00
Anonmiraj
af1bdad42c
[libc][math] Refactor nextup family to header-only (#181688)
Closes https://github.com/llvm/llvm-project/issues/181687
2026-02-25 17:58:11 +00:00
Anonmiraj
4ef6a8a16e
[libc][math] Refactor nextdown family to header-only (#181679)
closes #181678
2026-02-24 21:38:33 +02:00
Anonmiraj
4a1f565c85
[libc][math] Refactor setpayloadsig family to header-only (#183113)
closes : #181823
2026-02-24 20:47:20 +02:00
Julian Pokrovsky
8ed290cd1d
[libc][math] Refactor asinpif16 to Header Only (#179021)
Resolves https://github.com/llvm/llvm-project/issues/178103

Part of #147386

in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450
2026-02-24 19:55:16 +02:00
Anonmiraj
03388af319
[libc][math] Refactor setpayload family to header-only (#182922)
part of #181823
2026-02-24 19:50:07 +02:00
Mohamed Emad
05a039489d
[libc][math] Refactor bf16mul family to header-only (#182018)
Refactors the bf16mul math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182017

Target Functions:
  - bf16mul
  - bf16mulf
  - bf16mulf128
  - bf16mull
2026-02-24 02:24:01 +00:00
Armillus
3b9c27d1fc
[libc][math] Refactor bf16addl implementation to header-only in src/__support/math folder. (#182561)
Resolves https://github.com/llvm/llvm-project/issues/181019
Part of https://github.com/llvm/llvm-project/issues/147386
2026-02-23 19:29:55 +00:00
Anonmiraj
b19a0e0107
[libc][math] Refactor getpayload family functions to header-only (#181824)
Refactors the payload_functions math family to be header-only.

part of: https://github.com/llvm/llvm-project/issues/181823

Target Functions:
  - getpayload
  - getpayloadbf16
  - getpayloadf
  - getpayloadf128
  - getpayloadf16
2026-02-23 21:19:48 +02:00
Mohamed Emad
5bccf343e6
[libc][math] Refactor bf16fmaf128 to header-only (#182009)
Close #181627
2026-02-23 21:06:20 +02:00
Joseph Huber
e1feac3624 [libc] Properly handle null handles in rpc_dispatch.h
Summary:
We autuomatically dereference pointers, we should check if these are
null. Minimal change made by just keeping it zero and handling zero.
2026-02-20 14:43:15 -06:00
Joseph Huber
5f5d27d7d3
[libc] Support array tags in the RPC dispatch helpers (#181395)
Summary:
This PR adds support for tagging a pointer as an array when marshaling
between the CPU and GPU.
2026-02-20 09:35:47 -06:00
Mohamed Emad
13e6ffda47
[libc][math] Refactor fadd family to header-only (#182185)
Refactors the fadd math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182184

Target Functions:
  - fadd
  - faddf128
  - faddl
2026-02-19 23:59:33 +00:00
Mohamed Emad
b19d21a1e5
[libc][math] Refactor fmax family to header-only (#182165)
Refactors the fmax math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182164

Target Functions:
  - fmax
  - fmaxbf16
  - fmaxf
  - fmaxf128
  - fmaxf16
  - fmaxl
2026-02-19 23:40:52 +00:00
Joseph Huber
6cdee8f3d8
[libc] Fix RPC server with independent thread scheduling (#182211)
Summary:
The NVIDIA ITS protocol allows lanes to diverge inside of a warp. We
previously had contingencies around this, but there were cases where
issues would still show up under highly stressed usage.

The rules state that as long as the PC is the same, threads can
reconverge. This means that we can see a 'convergent' warp even when
they took completely divergent paths to get there. This resulted in the
'index' value in the RPC port lookup loop thinking we were in a
convergent group while all the indices were different. Fix this with a
broadcast to force the expected behavior

Additionally, we did not force that the threads were actually done with
their 'work_fn'. If the work included something that caused divergence
the other threads could continue and toggle the mailbox, resulting in
the server seeing unfinished work. Fix this with an explicit sync and
have one thread do it.

Add a test to make sure this actually works.
2026-02-19 17:38:49 -06:00
Mohamed Emad
6ac9c2ed7f
[libc][math] Refactor ceil family to header-only (#182121)
Refactors the ceil math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182120

Target Functions:
  - ceil
  - ceilbf16
  - ceilf
  - ceilf128
  - ceilf16
  - ceill
2026-02-20 01:32:17 +02:00
Serosh
3fafed392d
[libc][math] change bf16fmal to be header-only and constexpr-compat (#181666)
Closes: #181628 
Part of: #147386
2026-02-18 20:14:51 +02:00
AbdallahRashed
7ad2a632a3
[libc][math] Refactor bf16divl to header-only (#181535)
Part of https://github.com/llvm/llvm-project/issues/147386

in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450
Closes #181025
2026-02-18 14:09:18 +00:00
Vachan
79f8eba842
[libc][math] Refactor logbl to header only (#181659)
Closes #175366
2026-02-18 14:03:17 +00:00
Atharv Mane
b92ab89ed6
[libc][math] Refactor f16add Math Functions to Header Only (#181777)
Resolves #181630
Part of #147386
2026-02-18 15:55:53 +02:00
Xinlong Chen
b576429342
[libc][math] Refactor tanpif to header only (#181525)
Part of https://github.com/llvm/llvm-project/issues/147386
2026-02-18 15:53:27 +02:00
Xinlong Chen
1cb86450d8
[libc][math] Refactor tanf16 to header only (#181523)
Part of https://github.com/llvm/llvm-project/issues/147386
2026-02-18 15:50:11 +02:00
Abhijeet
61616f2d59
[libc][math] Refactored bf16fmaf to Header Only (#181919)
Fixes #181626
2026-02-18 00:34:02 +02:00
Ash
cc5909b3e3
[libc][math] Refactor sincos implementation to header only (#177522)
Part of llvm#147386

in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450

Closes #177638
2026-02-17 23:57:05 +02:00