137 Commits

Author SHA1 Message Date
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
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
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
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
bala-bhargav
0eaf12321e
[libc][math] Refactor bf16divf implementation to header-only in src/__support/math folder. (#181086) 2026-02-17 23:52:03 +02:00
Dhruv
9bf11863d1
[libc][math] Refactor logb implementation to header-only (#175719)
Fixes #175365
2026-02-17 21:34:38 +00:00
Viktor Moros
550c48b02e
[libc][math] Refactor bf16addf to header only (#181230)
Resolves #181017 
Part of #147386
2026-02-17 21:31:57 +00:00
DannyDaoBoYang
054021d8c0
[libc][math] Refactor sinpif16 to header only. (#178503)
Closes #176476
Part of #147386
2026-02-16 11:34:52 +02:00
Anonmiraj
e6fdcf3289
[libc][math] Refactor canonicalize function family to header-only (#181467)
closes: #181466
2026-02-16 11:28:14 +02:00
Atharv Mane
5a6f504922
[libc][math] Refactor bf16add to header only (#181392)
Resolves #181016
Part of #147386
2026-02-15 03:38:58 +02:00
Xinlong Chen
a4cb2b00df
[libc][math] Refactor tanhf16 implementation to header-only in src/__support/math folder. (#178645)
Part of https://github.com/llvm/llvm-project/issues/147386
closed https://github.com/llvm/llvm-project/issues/178492
2026-02-15 03:37:00 +02:00
Zorojuro
8ccc40ee0e
[libc][math] Refactor hypotf16 to Header Only (#180511).
closes #175337
part of #175336
2026-02-14 06:21:34 +00:00
Menace
bcf0ecf786
[libc][math] Refactor ffma implementation to header-only in src/__support/math folder (#175304).
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-14 06:08:36 +00:00
Xinlong Chen
a1d856a894
[libc][math] Refactor tanhf implementation to header-only in src/__support/math folder. (#178554)
Part of https://github.com/llvm/llvm-project/issues/147386
closes https://github.com/llvm/llvm-project/issues/178493
2026-02-14 06:04:38 +00:00
Abhijeet
2693adf197
[libc][math] Refactor bf16addf128 to header only (#181058)
Resolves #181018
Part of #147386
2026-02-14 05:49:18 +00:00
iLeGend
dde762afb9
[libc][math] Refactor f16sqrtf to Header Only. (#180749)
fix https://github.com/llvm/llvm-project/issues/175329
2026-02-12 03:52:40 +00:00
Anonmiraj
dc5ab0f149
[libc][math] Refactor powf to Header Only. (#176531)
closes : https://github.com/llvm/llvm-project/issues/176517
2026-02-10 23:31:05 +00:00
Anonmiraj
d8487e4b17
[libc][math] Refactor pow to Header Only. (#176529)
closes : #176516
2026-02-10 23:11:58 +00:00
Anonmiraj
b62a97abb7
[libc][math] Refactor log2f to Header Only. (#176527)
closes : #176514
2026-02-10 22:59:44 +00:00
Anonmiraj
76d9c2b40d
[libc][math] Refactor log2f16 to Header Only. (#176526)
closes : #176513
2026-02-10 22:33:22 +00:00
Anonmiraj
7068b52254
[libc][math] Refactor log10f to Header Only. (#176520)
closes : #176511
2026-02-10 22:16:36 +00:00
Anonmiraj
057ace3915
[libc][math] Refactor log1pf to Header Only. (#176525)
closes : #176512
2026-02-10 23:40:13 +02:00