Skip to content

Commit 74e3406

Browse files
author
git apple-llvm automerger
committed
Merge commit 'dc2f39e96c48' from llvm.org/main into next
2 parents 06f1a40 + dc2f39e commit 74e3406

File tree

4 files changed

+137
-3
lines changed

4 files changed

+137
-3
lines changed

libc/config/gpu/entrypoints.txt

Lines changed: 124 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,113 +251,226 @@ set(TARGET_LIBM_ENTRYPOINTS
251251
libc.src.math.atanf
252252
libc.src.math.atanh
253253
libc.src.math.atanhf
254+
libc.src.math.canonicalize
255+
libc.src.math.canonicalizef
256+
libc.src.math.canonicalizel
254257
libc.src.math.cbrt
255258
libc.src.math.cbrtf
256259
libc.src.math.ceil
257260
libc.src.math.ceilf
261+
libc.src.math.ceill
258262
libc.src.math.copysign
259263
libc.src.math.copysignf
264+
libc.src.math.copysignl
260265
libc.src.math.cos
261266
libc.src.math.cosf
262267
libc.src.math.cosh
263268
libc.src.math.coshf
269+
libc.src.math.cospif
270+
libc.src.math.ddivl
271+
libc.src.math.dfmal
272+
libc.src.math.dmull
273+
libc.src.math.dsqrtl
264274
libc.src.math.erf
265275
libc.src.math.erff
266276
libc.src.math.exp
267277
libc.src.math.exp10
268278
libc.src.math.exp10f
269279
libc.src.math.exp2
270280
libc.src.math.exp2f
281+
libc.src.math.exp2m1f
271282
libc.src.math.expf
272283
libc.src.math.expm1
273284
libc.src.math.expm1f
274285
libc.src.math.fabs
275286
libc.src.math.fabsf
287+
libc.src.math.fabsl
276288
libc.src.math.fadd
289+
libc.src.math.faddl
277290
libc.src.math.fdim
278291
libc.src.math.fdimf
292+
libc.src.math.fdiml
293+
libc.src.math.fdiv
294+
libc.src.math.fdivl
295+
libc.src.math.ffma
296+
libc.src.math.ffmal
279297
libc.src.math.floor
280298
libc.src.math.floorf
299+
libc.src.math.floorl
281300
libc.src.math.fma
282301
libc.src.math.fmaf
283302
libc.src.math.fmax
284303
libc.src.math.fmaxf
304+
libc.src.math.fmaximum
305+
libc.src.math.fmaximumf
306+
libc.src.math.fmaximuml
307+
libc.src.math.fmaximum_mag
308+
libc.src.math.fmaximum_magf
309+
libc.src.math.fmaximum_magl
310+
libc.src.math.fmaximum_mag_num
311+
libc.src.math.fmaximum_mag_numf
312+
libc.src.math.fmaximum_mag_numl
313+
libc.src.math.fmaximum_num
314+
libc.src.math.fmaximum_numf
315+
libc.src.math.fmaximum_numl
316+
libc.src.math.fmaxl
285317
libc.src.math.fmin
286318
libc.src.math.fminf
319+
libc.src.math.fminimum
320+
libc.src.math.fminimumf
321+
libc.src.math.fminimuml
322+
libc.src.math.fminimum_mag
323+
libc.src.math.fminimum_magf
324+
libc.src.math.fminimum_magl
325+
libc.src.math.fminimum_mag_num
326+
libc.src.math.fminimum_mag_numf
327+
libc.src.math.fminimum_mag_numl
328+
libc.src.math.fminimum_num
329+
libc.src.math.fminimum_numf
330+
libc.src.math.fminimum_numl
331+
libc.src.math.fminl
287332
libc.src.math.fmod
288333
libc.src.math.fmodf
334+
libc.src.math.fmodl
335+
libc.src.math.fmul
336+
libc.src.math.fmull
289337
libc.src.math.frexp
290338
libc.src.math.frexpf
339+
libc.src.math.frexpl
340+
# FIXME: Broken on NVPTX.
341+
# libc.src.math.fromfp
342+
# libc.src.math.fromfpf
343+
# libc.src.math.fromfpl
344+
# libc.src.math.fromfpx
345+
# libc.src.math.fromfpxf
346+
# libc.src.math.fromfpxl
347+
libc.src.math.fsqrt
348+
libc.src.math.fsqrtl
349+
libc.src.math.fsub
350+
libc.src.math.fsubl
291351
libc.src.math.getpayload
292352
libc.src.math.getpayloadf
353+
libc.src.math.getpayloadl
293354
libc.src.math.hypot
294355
libc.src.math.hypotf
295356
libc.src.math.ilogb
296357
libc.src.math.ilogbf
358+
libc.src.math.ilogbl
359+
libc.src.math.isnan
360+
libc.src.math.isnanf
361+
libc.src.math.isnanl
297362
libc.src.math.ldexp
298363
libc.src.math.ldexpf
364+
libc.src.math.ldexpl
365+
libc.src.math.lgamma
366+
libc.src.math.lgamma_r
299367
libc.src.math.llogb
300368
libc.src.math.llogbf
369+
libc.src.math.llogbl
301370
libc.src.math.llrint
302371
libc.src.math.llrintf
372+
libc.src.math.llrintl
303373
libc.src.math.llround
304374
libc.src.math.llroundf
375+
libc.src.math.llroundl
305376
libc.src.math.log
306377
libc.src.math.log10
307378
libc.src.math.log10f
308379
libc.src.math.log1p
309380
libc.src.math.log1pf
310381
libc.src.math.log2
311382
libc.src.math.log2f
383+
libc.src.math.logb
384+
libc.src.math.logbf
385+
libc.src.math.logbl
312386
libc.src.math.logf
313387
libc.src.math.lrint
314388
libc.src.math.lrintf
389+
libc.src.math.lrintl
315390
libc.src.math.lround
316391
libc.src.math.lroundf
392+
libc.src.math.lroundl
317393
libc.src.math.modf
318394
libc.src.math.modff
395+
libc.src.math.modfl
319396
libc.src.math.nan
320397
libc.src.math.nanf
398+
libc.src.math.nanl
321399
libc.src.math.nearbyint
322400
libc.src.math.nearbyintf
401+
libc.src.math.nearbyintl
323402
libc.src.math.nextafter
324403
libc.src.math.nextafterf
404+
libc.src.math.nextafterl
405+
libc.src.math.nextdown
406+
libc.src.math.nextdownf
407+
libc.src.math.nextdownl
325408
libc.src.math.nexttoward
326409
libc.src.math.nexttowardf
410+
libc.src.math.nexttowardl
411+
libc.src.math.nextup
412+
libc.src.math.nextupf
413+
libc.src.math.nextupl
327414
libc.src.math.pow
328415
libc.src.math.powf
329416
libc.src.math.powi
330417
libc.src.math.powif
331418
libc.src.math.remainder
332419
libc.src.math.remainderf
420+
libc.src.math.remainderl
333421
libc.src.math.remquo
334422
libc.src.math.remquof
423+
libc.src.math.remquol
335424
libc.src.math.rint
336425
libc.src.math.rintf
426+
libc.src.math.rintl
337427
libc.src.math.round
428+
libc.src.math.roundeven
429+
libc.src.math.roundevenf
430+
libc.src.math.roundevenl
338431
libc.src.math.roundf
339432
libc.src.math.scalbln
340433
libc.src.math.scalblnf
341434
libc.src.math.scalbn
342435
libc.src.math.scalbnf
436+
libc.src.math.scalbnl
437+
libc.src.math.setpayload
438+
libc.src.math.setpayloadf
439+
libc.src.math.setpayloadl
440+
libc.src.math.setpayloadsig
441+
libc.src.math.setpayloadsigf
442+
libc.src.math.setpayloadsigl
343443
libc.src.math.sin
344444
libc.src.math.sincos
345445
libc.src.math.sincosf
346446
libc.src.math.sinf
347447
libc.src.math.sinh
348448
libc.src.math.sinhf
449+
libc.src.math.sinpif
349450
libc.src.math.sqrt
350451
libc.src.math.sqrtf
452+
libc.src.math.sqrtl
351453
libc.src.math.tan
352454
libc.src.math.tanf
353455
libc.src.math.tanh
354456
libc.src.math.tanhf
355457
libc.src.math.tgamma
356458
libc.src.math.tgammaf
357-
libc.src.math.lgamma
358-
libc.src.math.lgamma_r
459+
libc.src.math.totalorder
460+
libc.src.math.totalorderf
461+
libc.src.math.totalordermag
462+
libc.src.math.totalordermagf
463+
libc.src.math.totalordermagl
359464
libc.src.math.trunc
360465
libc.src.math.truncf
466+
libc.src.math.truncl
467+
# FIXME: Broken on NVPTX.
468+
# libc.src.math.ufromfp
469+
# libc.src.math.ufromfpf
470+
# libc.src.math.ufromfpl
471+
# libc.src.math.ufromfpx
472+
# libc.src.math.ufromfpxf
473+
# libc.src.math.ufromfpxl
361474
)
362475

363476
if(LIBC_TYPES_HAS_FLOAT16)
@@ -366,18 +479,27 @@ if(LIBC_TYPES_HAS_FLOAT16)
366479
libc.src.math.canonicalizef16
367480
libc.src.math.ceilf16
368481
libc.src.math.copysignf16
482+
libc.src.math.exp10f16
483+
libc.src.math.exp2f16
484+
libc.src.math.expf16
369485
libc.src.math.f16add
370486
libc.src.math.f16addf
487+
libc.src.math.f16addl
371488
libc.src.math.f16div
372489
libc.src.math.f16divf
490+
libc.src.math.f16divl
373491
libc.src.math.f16fma
374492
libc.src.math.f16fmaf
493+
libc.src.math.f16fmal
375494
libc.src.math.f16mul
376495
libc.src.math.f16mulf
496+
libc.src.math.f16mull
377497
libc.src.math.f16sqrt
378498
libc.src.math.f16sqrtf
499+
libc.src.math.f16sqrtl
379500
libc.src.math.f16sub
380501
libc.src.math.f16subf
502+
libc.src.math.f16subl
381503
libc.src.math.fabsf16
382504
libc.src.math.fdimf16
383505
libc.src.math.floorf16

libc/src/math/generic/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ add_entrypoint_object(
138138
COMPILE_OPTIONS
139139
-O3
140140
DEPENDS
141+
libc.src.__support.macros.properties.types
141142
libc.src.__support.FPUtil.generic.add_sub
142143
)
143144

@@ -250,6 +251,7 @@ add_entrypoint_object(
250251
HDRS
251252
../dsubl.h
252253
DEPENDS
254+
libc.src.__support.macros.properties.types
253255
libc.src.__support.FPUtil.generic.add_sub
254256
COMPILE_OPTIONS
255257
-O3

libc/src/math/generic/daddl.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,16 @@
1010
#include "src/__support/FPUtil/generic/add_sub.h"
1111
#include "src/__support/common.h"
1212
#include "src/__support/macros/config.h"
13+
#include "src/__support/macros/properties/types.h"
1314

1415
namespace LIBC_NAMESPACE_DECL {
1516

1617
LLVM_LIBC_FUNCTION(double, daddl, (long double x, long double y)) {
18+
#ifdef LIBC_TYPES_LONG_DOUBLE_IS_FLOAT64
19+
return static_cast<double>(x) + static_cast<double>(y);
20+
#else
1721
return fputil::generic::add<double>(x, y);
22+
#endif
1823
}
1924

2025
} // namespace LIBC_NAMESPACE_DECL

libc/src/math/generic/dsubl.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,16 @@
1010
#include "src/__support/FPUtil/generic/add_sub.h"
1111
#include "src/__support/common.h"
1212
#include "src/__support/macros/config.h"
13+
#include "src/__support/macros/properties/types.h"
1314

1415
namespace LIBC_NAMESPACE_DECL {
1516

1617
LLVM_LIBC_FUNCTION(double, dsubl, (long double x, long double y)) {
17-
return fputil::generic::sub<double>(x, y);
18+
#ifdef LIBC_TYPES_LONG_DOUBLE_IS_FLOAT64
19+
return static_cast<double>(x) - static_cast<double>(y);
20+
#else
21+
return fputil::generic::add<double>(x, y);
22+
#endif
1823
}
1924

2025
} // namespace LIBC_NAMESPACE_DECL

0 commit comments

Comments
 (0)