Skip to content

Commit 8f33f1d

Browse files
[libc][math][c23] Add dadd{l,f128} and ddiv{l,f128} C23 math functions (#100456)
- fadd removed because I need to add for different input types - finishing rest of basic operations - noticed duplicates will remove --------- Co-authored-by: OverMighty <[email protected]>
1 parent 97f723b commit 8f33f1d

24 files changed

+282
-2
lines changed

libc/config/darwin/arm/entrypoints.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ set(TARGET_LIBM_ENTRYPOINTS
148148
libc.src.math.cospif
149149
libc.src.math.dfmal
150150
libc.src.math.dsqrtl
151+
libc.src.math.daddl
151152
libc.src.math.dsubl
152153
libc.src.math.erff
153154
libc.src.math.exp

libc/config/darwin/x86_64/entrypoints.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ set(TARGET_LIBM_ENTRYPOINTS
119119
#libc.src.math.ceill
120120
#libc.src.math.coshf
121121
#libc.src.math.cosf
122+
#libc.src.math.daddl
122123
#libc.src.math.dfmal
123124
#libc.src.math.dsqrtl
124125
#libc.src.math.dsubl

libc/config/linux/aarch64/entrypoints.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ set(TARGET_LIBM_ENTRYPOINTS
363363
libc.src.math.cosf
364364
libc.src.math.coshf
365365
libc.src.math.cospif
366+
libc.src.math.daddl
366367
libc.src.math.dfmal
367368
libc.src.math.dmull
368369
libc.src.math.dsqrtl
@@ -618,6 +619,8 @@ if(LIBC_TYPES_HAS_FLOAT128)
618619
# math.h C23 _Float128 entrypoints
619620
libc.src.math.ceilf128
620621
libc.src.math.copysignf128
622+
libc.src.math.daddf128
623+
libc.src.math.ddivf128
621624
libc.src.math.dfmaf128
622625
libc.src.math.dsqrtf128
623626
libc.src.math.dsubf128

libc/config/linux/arm/entrypoints.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ set(TARGET_LIBM_ENTRYPOINTS
228228
libc.src.math.cos
229229
libc.src.math.cosf
230230
libc.src.math.coshf
231+
libc.src.math.daddl
231232
libc.src.math.dfmal
232233
libc.src.math.dsqrtl
233234
libc.src.math.erff

libc/config/linux/riscv/entrypoints.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,7 @@ set(TARGET_LIBM_ENTRYPOINTS
386386
libc.src.math.cosf
387387
libc.src.math.coshf
388388
libc.src.math.cospif
389+
libc.src.math.daddl
389390
libc.src.math.dfmal
390391
libc.src.math.dmull
391392
libc.src.math.dsqrtl

libc/config/linux/x86_64/entrypoints.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@ set(TARGET_LIBM_ENTRYPOINTS
389389
libc.src.math.dfmal
390390
libc.src.math.dmull
391391
libc.src.math.dsqrtl
392+
libc.src.math.daddl
392393
libc.src.math.dsubl
393394
libc.src.math.erff
394395
libc.src.math.exp
@@ -660,6 +661,8 @@ if(LIBC_TYPES_HAS_FLOAT128)
660661
libc.src.math.canonicalizef128
661662
libc.src.math.ceilf128
662663
libc.src.math.copysignf128
664+
libc.src.math.daddf128
665+
libc.src.math.ddivf128
663666
libc.src.math.dfmaf128
664667
libc.src.math.dmulf128
665668
libc.src.math.dsqrtf128

libc/config/windows/entrypoints.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ set(TARGET_LIBM_ENTRYPOINTS
133133
libc.src.math.cos
134134
libc.src.math.cosf
135135
libc.src.math.coshf
136+
libc.src.math.daddl
136137
libc.src.math.dfmal
137138
libc.src.math.dsubl
138139
libc.src.math.erff

libc/docs/math/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@ Basic Operations
114114
+------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
115115
| copysign | |check| | |check| | |check| | |check| | |check| | 7.12.11.1 | F.10.8.1 |
116116
+------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
117-
| dadd | N/A | N/A | | N/A | | 7.12.14.1 | F.10.11 |
117+
| dadd | N/A | N/A | |check| | N/A | |check|\* | 7.12.14.1 | F.10.11 |
118118
+------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
119-
| ddiv | N/A | N/A | | N/A | | 7.12.14.4 | F.10.11 |
119+
| ddiv | N/A | N/A | | N/A | |check|\* | 7.12.14.4 | F.10.11 |
120120
+------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
121121
| dfma | N/A | N/A | |check| | N/A | |check|\* | 7.12.14.5 | F.10.11 |
122122
+------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+

libc/spec/llvm_libc_ext.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ def LLVMLibcExt : StandardSpec<"llvm_libc_ext"> {
5757
[], // Types
5858
[], // Enumerations
5959
[
60+
GuardedFunctionSpec<"daddf128", RetValSpec<DoubleType>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">,
61+
GuardedFunctionSpec<"ddivf128", RetValSpec<DoubleType>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">,
6062
GuardedFunctionSpec<"dfmaf128", RetValSpec<DoubleType>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">,
6163
GuardedFunctionSpec<"dsqrtf128", RetValSpec<DoubleType>, [ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">,
6264
GuardedFunctionSpec<"dsubf128", RetValSpec<DoubleType>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">,

libc/spec/stdc.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,8 @@ def StdC : StandardSpec<"stdc"> {
396396
FunctionSpec<"ceill", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
397397
GuardedFunctionSpec<"ceilf16", RetValSpec<Float16Type>, [ArgSpec<Float16Type>], "LIBC_TYPES_HAS_FLOAT16">,
398398
GuardedFunctionSpec<"ceilf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">,
399+
400+
FunctionSpec<"daddl", RetValSpec<DoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,
399401

400402
FunctionSpec<"dfmal", RetValSpec<DoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,
401403
FunctionSpec<"dsubl", RetValSpec<DoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,

0 commit comments

Comments
 (0)