llvm / llvm/llvm-project

[libc] Tracking Issue - Modify f128 functions for emulated float128 type

Open
#216,576 1 comment 0 reactions 1 assignee Claimed by @Sukumarsawant View on GitHub
libc metaissue
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.