[libc] Tracking Issue - Modify f128 functions for emulated float128 type
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
### Basic arithmetic / conversion
* [ ] **BF16 arithmetic** [https://github.com/llvm/llvm-project/pull/216823](https://github.com/llvm/llvm-project/pull/216823)
* [ ] `bf16addf128`
* [ ] `bf16subf128`
* [ ] `bf16mulf128`
* [ ] `bf16divf128`
* [ ] `bf16fmaf128`
* [ ] **F16 basic arithmetic**
* [ ] `f16addf128`
* [ ] `f16subf128`
* [ ] `f16mulf128`
* [ ] `f16divf128`
* [ ] **F16 FMA + sqrt**
* [ ] `f16fmaf128`
* [ ] `f16sqrtf128`
* [ ] **Double basic arithmetic**
* [ ] `daddf128`
* [ ] `dsubf128`
* [ ] `dmulf128`
* [ ] `ddivf128`
* [ ] **Double FMA + sqrt**
* [ ] `dfmaf128`
* [ ] `dsqrtf128`
* [ ] **Float basic arithmetic**
* [ ] `faddf128`
* [ ] `fsubf128`
* [ ] `fmulf128`
* [ ] `fdivf128`
* [ ] **Float FMA + sqrt**
* [ ] `ffmaf128`
* [ ] `fsqrtf128`
### Rounding
* [x] **ceil** [https://github.com/llvm/llvm-project/pull/207735](https://github.com/llvm/llvm-project/pull/207735)
* [x] `ceilf128`
* [x] **floor** [https://github.com/llvm/llvm-project/pull/216552](https://github.com/llvm/llvm-project/pull/216552)
* [x] `floorf128`
* [x] **trunc** [https://github.com/llvm/llvm-project/pull/216560](https://github.com/llvm/llvm-project/pull/216560)
* [x] `truncf128`
* [x] **round** [https://github.com/llvm/llvm-project/pull/216563](https://github.com/llvm/llvm-project/pull/216563)
* [x] `roundf128`
* [x] **roundeven** [https://github.com/llvm/llvm-project/pull/216568](https://github.com/llvm/llvm-project/pull/216568)
* [x] `roundevenf128`
* [x] **nearbyint** [https://github.com/llvm/llvm-project/pull/217025](https://github.com/llvm/llvm-project/pull/217025)
* [x] `nearbyintf128`
* [x] **Round-to-integer** [https://github.com/llvm/llvm-project/pull/217070](https://github.com/llvm/llvm-project/pull/217070)
* [x] `lrintf128`
* [x] `llrintf128`
* [x] `rintf128`
* [x] **Round-to-integer-returning** [https://github.com/llvm/llvm-project/pull/216829](https://github.com/llvm/llvm-project/pull/216829)
* [x] `lroundf128`
* [x] `llroundf128`
### Floating-point conversion
* [ ] **fromfp family** [https://github.com/llvm/llvm-project/pull/216578](https://github.com/llvm/llvm-project/pull/216578)
* [ ] `fromfpf128`
* [ ] `fromfpxf128`
* [ ] `ufromfpf128`
* [ ] `ufromfpxf128`
### Sign / comparison / min-max
* [ ] **Sign manipulation** https://github.com/llvm/llvm-project/pull/217389
* [ ] `fabsf128`
* [ ] `copysignf128`
* [x] **fmax/fmin** [https://github.com/llvm/llvm-project/pull/216575](https://github.com/llvm/llvm-project/pull/216575)
* [x] `fmaxf128`
* [x] `fminf128`
* [ ] **fmaximum/fminimum** https://github.com/llvm/llvm-project/pull/217390
* [ ] `fmaximumf128`
* [ ] `fminimumf128`
* [ ] **fmaximum_num/fminimum_num** https://github.com/llvm/llvm-project/pull/217409
* [ ] `fmaximum_numf128`
* [ ] `fminimum_numf128`
* [ ] **fmaximum_mag/fminimum_mag** https://github.com/llvm/llvm-project/pull/217539
* [ ] `fmaximum_magf128`
* [ ] `fminimum_magf128`
* [ ] **fmaximum_mag_num/fminimum_mag_num** https://github.com/llvm/llvm-project/pull/217549
* [ ] `fmaximum_mag_numf128`
* [ ] `fminimum_mag_numf128`
* [ ] **fdim** https://github.com/llvm/llvm-project/pull/217567
* [ ] `fdimf128`
### Ordering / classification
* [ ] **Total ordering**
* [ ] `totalorderf128`
* [ ] `totalordermagf128`
* [x] **Classification** : https://github.com/llvm/llvm-project/pull/217134
* [x] `iscanonicalf128`
* [x] `isnanf128`
* [x] `issignalingf128`
* [ ] `canonicalizef128`
### Exponent / mantissa manipulation
* [ ] **Exponent decomposition**
* [ ] `frexpf128`
* [ ] `logbf128`
* [ ] `ilogbf128`
* [ ] `llogbf128`
* [ ] **Exponent scaling**
* [ ] `ldexpf128`
* [ ] `scalbnf128`
* [ ] `scalblnf128`
* [ ] **Mantissa manipulation**
* [ ] `modff128`
### Next / NaN / payload
* [ ] **Next representable** https://github.com/llvm/llvm-project/pull/217575
* [ ] `nextafterf128`
* [ ] `nextupf128`
* [ ] `nextdownf128`
* [ ] **NaN / payload**
* [ ] `nanf128`
* [ ] `getpayloadf128`
* [ ] `setpayloadf128`
* [ ] `setpayloadsigf128`
### Remainder
* [ ] **Remainder family** https://github.com/llvm/llvm-project/pull/217578
* [ ] `fmodf128`
* [ ] `remainderf128`
* [ ] `remquof128`
### Higher math
* [x] **sqrt** [https://github.com/llvm/llvm-project/pull/216500](https://github.com/llvm/llvm-project/pull/216500)
* [x] `sqrtf128`
* [x] **atan2** [https://github.com/llvm/llvm-project/pull/216508](https://github.com/llvm/llvm-project/pull/216508)
* [x] `atan2f128`
> The list was organized using AI.
Contributor guide
Assessment
This issue has not been assessed yet.