[SLP]Reduce number of alternate instruction, where possible
[llvm-project.git] / libc / config / gpu / nvptx / entrypoints.txt
blob6b25dae158cc94fdb13027bfe08227fdc05b466a
1 set(TARGET_LIBC_ENTRYPOINTS
2     # assert.h entrypoints
3     libc.src.assert.__assert_fail
5     # ctype.h entrypoints
6     libc.src.ctype.isalnum
7     libc.src.ctype.isalnum_l
8     libc.src.ctype.isalpha
9     libc.src.ctype.isalpha_l
10     libc.src.ctype.isascii
11     libc.src.ctype.isblank
12     libc.src.ctype.isblank_l
13     libc.src.ctype.iscntrl
14     libc.src.ctype.iscntrl_l
15     libc.src.ctype.isdigit
16     libc.src.ctype.isdigit_l
17     libc.src.ctype.isgraph
18     libc.src.ctype.isgraph_l
19     libc.src.ctype.islower
20     libc.src.ctype.islower_l
21     libc.src.ctype.isprint
22     libc.src.ctype.isprint_l
23     libc.src.ctype.ispunct
24     libc.src.ctype.ispunct_l
25     libc.src.ctype.isspace
26     libc.src.ctype.isspace_l
27     libc.src.ctype.isupper
28     libc.src.ctype.isupper_l
29     libc.src.ctype.isxdigit
30     libc.src.ctype.isxdigit_l
31     libc.src.ctype.toascii
32     libc.src.ctype.tolower
33     libc.src.ctype.tolower_l
34     libc.src.ctype.toupper
35     libc.src.ctype.toupper_l
37     # string.h entrypoints
38     libc.src.string.memccpy
39     libc.src.string.memchr
40     libc.src.string.memcmp
41     libc.src.string.memcpy
42     libc.src.string.memmem
43     libc.src.string.memmove
44     libc.src.string.mempcpy
45     libc.src.string.memrchr
46     libc.src.string.memset
47     libc.src.string.stpcpy
48     libc.src.string.stpncpy
49     libc.src.string.strcasestr
50     libc.src.string.strcat
51     libc.src.string.strchr
52     libc.src.string.strchrnul
53     libc.src.string.strcmp
54     libc.src.string.strcoll
55     libc.src.string.strcoll_l
56     libc.src.string.strcpy
57     libc.src.string.strcspn
58     libc.src.string.strdup
59     libc.src.string.strerror
60     libc.src.string.strlcat
61     libc.src.string.strlcpy
62     libc.src.string.strlen
63     libc.src.string.strncat
64     libc.src.string.strncmp
65     libc.src.string.strncpy
66     libc.src.string.strndup
67     libc.src.string.strnlen
68     libc.src.string.strpbrk
69     libc.src.string.strrchr
70     libc.src.string.strsep
71     libc.src.string.strspn
72     libc.src.string.strstr
73     libc.src.string.strtok
74     libc.src.string.strtok_r
75     libc.src.string.strxfrm
76     libc.src.string.strxfrm_l
78     # strings.h entrypoints
79     libc.src.strings.bcmp
80     libc.src.strings.bcopy
81     libc.src.strings.bzero
82     libc.src.strings.index
83     libc.src.strings.rindex
84     libc.src.strings.strcasecmp
85     libc.src.strings.strncasecmp
87     # stdbit.h entrypoints
88     libc.src.stdbit.stdc_bit_ceil_uc
89     libc.src.stdbit.stdc_bit_ceil_ui
90     libc.src.stdbit.stdc_bit_ceil_ul
91     libc.src.stdbit.stdc_bit_ceil_ull
92     libc.src.stdbit.stdc_bit_ceil_us
93     libc.src.stdbit.stdc_bit_floor_uc
94     libc.src.stdbit.stdc_bit_floor_ui
95     libc.src.stdbit.stdc_bit_floor_ul
96     libc.src.stdbit.stdc_bit_floor_ull
97     libc.src.stdbit.stdc_bit_floor_us
98     libc.src.stdbit.stdc_bit_width_uc
99     libc.src.stdbit.stdc_bit_width_ui
100     libc.src.stdbit.stdc_bit_width_ul
101     libc.src.stdbit.stdc_bit_width_ull
102     libc.src.stdbit.stdc_bit_width_us
103     libc.src.stdbit.stdc_count_ones_uc
104     libc.src.stdbit.stdc_count_ones_ui
105     libc.src.stdbit.stdc_count_ones_ul
106     libc.src.stdbit.stdc_count_ones_ull
107     libc.src.stdbit.stdc_count_ones_us
108     libc.src.stdbit.stdc_count_zeros_uc
109     libc.src.stdbit.stdc_count_zeros_ui
110     libc.src.stdbit.stdc_count_zeros_ul
111     libc.src.stdbit.stdc_count_zeros_ull
112     libc.src.stdbit.stdc_count_zeros_us
113     libc.src.stdbit.stdc_first_leading_one_uc
114     libc.src.stdbit.stdc_first_leading_one_ui
115     libc.src.stdbit.stdc_first_leading_one_ul
116     libc.src.stdbit.stdc_first_leading_one_ull
117     libc.src.stdbit.stdc_first_leading_one_us
118     libc.src.stdbit.stdc_first_leading_zero_uc
119     libc.src.stdbit.stdc_first_leading_zero_ui
120     libc.src.stdbit.stdc_first_leading_zero_ul
121     libc.src.stdbit.stdc_first_leading_zero_ull
122     libc.src.stdbit.stdc_first_leading_zero_us
123     libc.src.stdbit.stdc_first_trailing_one_uc
124     libc.src.stdbit.stdc_first_trailing_one_ui
125     libc.src.stdbit.stdc_first_trailing_one_ul
126     libc.src.stdbit.stdc_first_trailing_one_ull
127     libc.src.stdbit.stdc_first_trailing_one_us
128     libc.src.stdbit.stdc_first_trailing_zero_uc
129     libc.src.stdbit.stdc_first_trailing_zero_ui
130     libc.src.stdbit.stdc_first_trailing_zero_ul
131     libc.src.stdbit.stdc_first_trailing_zero_ull
132     libc.src.stdbit.stdc_first_trailing_zero_us
133     libc.src.stdbit.stdc_has_single_bit_uc
134     libc.src.stdbit.stdc_has_single_bit_ui
135     libc.src.stdbit.stdc_has_single_bit_ul
136     libc.src.stdbit.stdc_has_single_bit_ull
137     libc.src.stdbit.stdc_has_single_bit_us
138     libc.src.stdbit.stdc_leading_ones_uc
139     libc.src.stdbit.stdc_leading_ones_ui
140     libc.src.stdbit.stdc_leading_ones_ul
141     libc.src.stdbit.stdc_leading_ones_ull
142     libc.src.stdbit.stdc_leading_ones_us
143     libc.src.stdbit.stdc_leading_zeros_uc
144     libc.src.stdbit.stdc_leading_zeros_ui
145     libc.src.stdbit.stdc_leading_zeros_ul
146     libc.src.stdbit.stdc_leading_zeros_ull
147     libc.src.stdbit.stdc_leading_zeros_us
148     libc.src.stdbit.stdc_trailing_ones_uc
149     libc.src.stdbit.stdc_trailing_ones_ui
150     libc.src.stdbit.stdc_trailing_ones_ul
151     libc.src.stdbit.stdc_trailing_ones_ull
152     libc.src.stdbit.stdc_trailing_ones_us
153     libc.src.stdbit.stdc_trailing_zeros_uc
154     libc.src.stdbit.stdc_trailing_zeros_ui
155     libc.src.stdbit.stdc_trailing_zeros_ul
156     libc.src.stdbit.stdc_trailing_zeros_ull
157     libc.src.stdbit.stdc_trailing_zeros_us
159     # stdlib.h entrypoints
160     libc.src.stdlib._Exit
161     libc.src.stdlib.abort
162     libc.src.stdlib.abs
163     libc.src.stdlib.atexit
164     libc.src.stdlib.atof
165     libc.src.stdlib.atoi
166     libc.src.stdlib.atol
167     libc.src.stdlib.atoll
168     libc.src.stdlib.bsearch
169     libc.src.stdlib.div
170     libc.src.stdlib.exit
171     libc.src.stdlib.labs
172     libc.src.stdlib.ldiv
173     libc.src.stdlib.llabs
174     libc.src.stdlib.lldiv
175     libc.src.stdlib.qsort
176     libc.src.stdlib.qsort_r
177     libc.src.stdlib.rand
178     libc.src.stdlib.srand
179     libc.src.stdlib.strtod
180     libc.src.stdlib.strtod_l
181     libc.src.stdlib.strtof
182     libc.src.stdlib.strtof_l
183     libc.src.stdlib.strtol
184     libc.src.stdlib.strtol_l
185     libc.src.stdlib.strtold
186     libc.src.stdlib.strtold_l
187     libc.src.stdlib.strtoll
188     libc.src.stdlib.strtoll_l
189     libc.src.stdlib.strtoul
190     libc.src.stdlib.strtoul_l
191     libc.src.stdlib.strtoull
192     libc.src.stdlib.strtoull_l
193     libc.src.stdlib.at_quick_exit
194     libc.src.stdlib.quick_exit
195     libc.src.stdlib.getenv
196     libc.src.stdlib.system
198     # TODO: Implement these correctly
199     libc.src.stdlib.aligned_alloc
200     libc.src.stdlib.calloc
201     libc.src.stdlib.free
202     libc.src.stdlib.malloc
203     libc.src.stdlib.realloc
205     # errno.h entrypoints
206     libc.src.errno.errno
208     # stdio.h entrypoints
209     libc.src.stdio.clearerr
210     libc.src.stdio.fclose
211     libc.src.stdio.printf
212     libc.src.stdio.vprintf
213     libc.src.stdio.fprintf
214     libc.src.stdio.vfprintf
215     libc.src.stdio.snprintf
216     libc.src.stdio.sprintf
217     libc.src.stdio.vsnprintf
218     libc.src.stdio.vsprintf
219     libc.src.stdio.asprintf
220     libc.src.stdio.vasprintf
221     libc.src.stdio.scanf
222     libc.src.stdio.vscanf
223     libc.src.stdio.fscanf
224     libc.src.stdio.vfscanf
225     libc.src.stdio.sscanf
226     libc.src.stdio.vsscanf
227     libc.src.stdio.feof
228     libc.src.stdio.ferror
229     libc.src.stdio.fflush
230     libc.src.stdio.fgetc
231     libc.src.stdio.fgets
232     libc.src.stdio.fopen
233     libc.src.stdio.fputc
234     libc.src.stdio.fputs
235     libc.src.stdio.fread
236     libc.src.stdio.fseek
237     libc.src.stdio.ftell
238     libc.src.stdio.fwrite
239     libc.src.stdio.getc
240     libc.src.stdio.getchar
241     libc.src.stdio.putc
242     libc.src.stdio.putchar
243     libc.src.stdio.puts
244     libc.src.stdio.remove
245     libc.src.stdio.rename
246     libc.src.stdio.stderr
247     libc.src.stdio.stdin
248     libc.src.stdio.stdout
249     libc.src.stdio.ungetc
251     # inttypes.h entrypoints
252     libc.src.inttypes.imaxabs
253     libc.src.inttypes.imaxdiv
254     libc.src.inttypes.strtoimax
255     libc.src.inttypes.strtoumax
257     # time.h entrypoints
258     libc.src.time.clock
259     libc.src.time.clock_gettime
260     libc.src.time.timespec_get
261     libc.src.time.nanosleep
263     # wchar.h entrypoints
264     libc.src.wchar.wcslen
265     libc.src.wchar.wctob
267     # locale.h entrypoints
268     libc.src.locale.localeconv
269     libc.src.locale.duplocale
270     libc.src.locale.freelocale
271     libc.src.locale.localeconv
272     libc.src.locale.newlocale
273     libc.src.locale.setlocale
274     libc.src.locale.uselocale
277 set(TARGET_LIBM_ENTRYPOINTS
278     # math.h entrypoints
279     libc.src.math.acos
280     libc.src.math.acosf
281     libc.src.math.acosh
282     libc.src.math.acoshf
283     libc.src.math.asin
284     libc.src.math.asinf
285     libc.src.math.asinh
286     libc.src.math.asinhf
287     libc.src.math.atan
288     libc.src.math.atan2
289     libc.src.math.atan2f
290     libc.src.math.atan2l
291     libc.src.math.atanf
292     libc.src.math.atanh
293     libc.src.math.atanhf
294     libc.src.math.canonicalize
295     libc.src.math.canonicalizef
296     libc.src.math.canonicalizel
297     libc.src.math.cbrt
298     libc.src.math.cbrtf
299     libc.src.math.ceil
300     libc.src.math.ceilf
301     libc.src.math.ceill
302     libc.src.math.copysign
303     libc.src.math.copysignf
304     libc.src.math.copysignl
305     libc.src.math.cos
306     libc.src.math.cosf
307     libc.src.math.cosh
308     libc.src.math.coshf
309     libc.src.math.cospif
310     libc.src.math.ddivl
311     libc.src.math.dfmal
312     libc.src.math.dmull
313     libc.src.math.dsqrtl
314     libc.src.math.erf
315     libc.src.math.erff
316     libc.src.math.exp
317     libc.src.math.exp10
318     libc.src.math.exp10f
319     libc.src.math.exp2
320     libc.src.math.exp2f
321     libc.src.math.exp2m1f
322     libc.src.math.expf
323     libc.src.math.expm1
324     libc.src.math.expm1f
325     libc.src.math.fabs
326     libc.src.math.fabsf
327     libc.src.math.fabsl
328     libc.src.math.fadd
329     libc.src.math.faddl
330     libc.src.math.fdim
331     libc.src.math.fdimf
332     libc.src.math.fdiml
333     libc.src.math.fdiv
334     libc.src.math.fdivl
335     libc.src.math.ffma
336     libc.src.math.ffmal
337     libc.src.math.floor
338     libc.src.math.floorf
339     libc.src.math.floorl
340     libc.src.math.fma
341     libc.src.math.fmaf
342     libc.src.math.fmax
343     libc.src.math.fmaxf
344     libc.src.math.fmaximum
345     libc.src.math.fmaximumf
346     libc.src.math.fmaximuml
347     libc.src.math.fmaximum_mag
348     libc.src.math.fmaximum_magf
349     libc.src.math.fmaximum_magl
350     libc.src.math.fmaximum_mag_num
351     libc.src.math.fmaximum_mag_numf
352     libc.src.math.fmaximum_mag_numl
353     libc.src.math.fmaximum_num
354     libc.src.math.fmaximum_numf
355     libc.src.math.fmaximum_numl
356     libc.src.math.fmaxl
357     libc.src.math.fmin
358     libc.src.math.fminf
359     libc.src.math.fminimum
360     libc.src.math.fminimumf
361     libc.src.math.fminimuml
362     libc.src.math.fminimum_mag
363     libc.src.math.fminimum_magf
364     libc.src.math.fminimum_magl
365     libc.src.math.fminimum_mag_num
366     libc.src.math.fminimum_mag_numf
367     libc.src.math.fminimum_mag_numl
368     libc.src.math.fminimum_num
369     libc.src.math.fminimum_numf
370     libc.src.math.fminimum_numl
371     libc.src.math.fminl
372     libc.src.math.fmod
373     libc.src.math.fmodf
374     libc.src.math.fmodl
375     libc.src.math.fmul
376     libc.src.math.fmull
377     libc.src.math.frexp
378     libc.src.math.frexpf
379     libc.src.math.frexpl
380     # FIXME: Broken.
381     # libc.src.math.fromfp
382     # libc.src.math.fromfpf
383     # libc.src.math.fromfpl
384     # libc.src.math.fromfpx
385     # libc.src.math.fromfpxf
386     # libc.src.math.fromfpxl
387     libc.src.math.fsqrt
388     libc.src.math.fsqrtl
389     libc.src.math.fsub
390     libc.src.math.fsubl
391     libc.src.math.getpayload
392     libc.src.math.getpayloadf
393     libc.src.math.getpayloadl
394     libc.src.math.hypot
395     libc.src.math.hypotf
396     libc.src.math.ilogb
397     libc.src.math.ilogbf
398     libc.src.math.ilogbl
399     libc.src.math.isnan
400     libc.src.math.isnanf
401     libc.src.math.isnanl
402     libc.src.math.ldexp
403     libc.src.math.ldexpf
404     libc.src.math.ldexpl
405     libc.src.math.lgamma
406     libc.src.math.lgamma_r
407     libc.src.math.llogb
408     libc.src.math.llogbf
409     libc.src.math.llogbl
410     libc.src.math.llrint
411     libc.src.math.llrintf
412     libc.src.math.llrintl
413     libc.src.math.llround
414     libc.src.math.llroundf
415     libc.src.math.llroundl
416     libc.src.math.log
417     libc.src.math.log10
418     libc.src.math.log10f
419     libc.src.math.log1p
420     libc.src.math.log1pf
421     libc.src.math.log2
422     libc.src.math.log2f
423     libc.src.math.logb
424     libc.src.math.logbf
425     libc.src.math.logbl
426     libc.src.math.logf
427     libc.src.math.lrint
428     libc.src.math.lrintf
429     libc.src.math.lrintl
430     libc.src.math.lround
431     libc.src.math.lroundf
432     libc.src.math.lroundl
433     libc.src.math.modf
434     libc.src.math.modff
435     libc.src.math.modfl
436     libc.src.math.nan
437     libc.src.math.nanf
438     libc.src.math.nanl
439     libc.src.math.nearbyint
440     libc.src.math.nearbyintf
441     libc.src.math.nearbyintl
442     libc.src.math.nextafter
443     libc.src.math.nextafterf
444     libc.src.math.nextafterl
445     libc.src.math.nextdown
446     libc.src.math.nextdownf
447     libc.src.math.nextdownl
448     libc.src.math.nexttoward
449     libc.src.math.nexttowardf
450     libc.src.math.nexttowardl
451     libc.src.math.nextup
452     libc.src.math.nextupf
453     libc.src.math.nextupl
454     libc.src.math.pow
455     libc.src.math.powf
456     libc.src.math.powi
457     libc.src.math.powif
458     libc.src.math.remainder
459     libc.src.math.remainderf
460     libc.src.math.remainderl
461     libc.src.math.remquo
462     libc.src.math.remquof
463     libc.src.math.remquol
464     libc.src.math.rint
465     libc.src.math.rintf
466     libc.src.math.rintl
467     libc.src.math.roundeven
468     libc.src.math.roundevenf
469     libc.src.math.roundevenl
470     libc.src.math.round
471     libc.src.math.roundf
472     libc.src.math.roundl
473     libc.src.math.scalbln
474     libc.src.math.scalblnf
475     libc.src.math.scalblnl
476     libc.src.math.scalbn
477     libc.src.math.scalbnf
478     libc.src.math.scalbnl
479     libc.src.math.setpayload
480     libc.src.math.setpayloadf
481     libc.src.math.setpayloadl
482     libc.src.math.setpayloadsig
483     libc.src.math.setpayloadsigf
484     libc.src.math.setpayloadsigl
485     libc.src.math.sin
486     libc.src.math.sincos
487     libc.src.math.sincosf
488     libc.src.math.sinf
489     libc.src.math.sinh
490     libc.src.math.sinhf
491     libc.src.math.sinpif
492     libc.src.math.sqrt
493     libc.src.math.sqrtf
494     libc.src.math.sqrtl
495     libc.src.math.tan
496     libc.src.math.tanf
497     libc.src.math.tanh
498     libc.src.math.tanhf
499     libc.src.math.tgamma
500     libc.src.math.tgammaf
501     libc.src.math.totalorder
502     libc.src.math.totalorderf
503     libc.src.math.totalorderl
504     libc.src.math.totalordermag
505     libc.src.math.totalordermagf
506     libc.src.math.totalordermagl
507     libc.src.math.trunc
508     libc.src.math.truncf
509     libc.src.math.truncl
510     # FIXME: Broken.
511     # libc.src.math.ufromfp
512     # libc.src.math.ufromfpf
513     # libc.src.math.ufromfpl
514     # libc.src.math.ufromfpx
515     # libc.src.math.ufromfpxf
516     # libc.src.math.ufromfpxl
519 if(LIBC_TYPES_HAS_FLOAT16)
520   list(APPEND TARGET_LIBM_ENTRYPOINTS
521     # math.h C23 _Float16 entrypoints
522     libc.src.math.canonicalizef16
523     libc.src.math.ceilf16
524     libc.src.math.copysignf16
525     libc.src.math.coshf16
526     libc.src.math.exp10f16
527     libc.src.math.exp10m1f16
528     libc.src.math.exp2f16
529     libc.src.math.expf16
530     libc.src.math.f16add
531     libc.src.math.f16addf
532     libc.src.math.f16addl
533     libc.src.math.f16div
534     libc.src.math.f16divf
535     libc.src.math.f16divl
536     libc.src.math.f16fma
537     libc.src.math.f16fmaf
538     libc.src.math.f16fmal
539     libc.src.math.f16mul
540     libc.src.math.f16mulf
541     libc.src.math.f16mull
542     libc.src.math.f16sqrt
543     libc.src.math.f16sqrtf
544     libc.src.math.f16sqrtl
545     libc.src.math.f16sub
546     libc.src.math.f16subf
547     libc.src.math.f16subl
548     libc.src.math.fabsf16
549     libc.src.math.fdimf16
550     libc.src.math.floorf16
551     libc.src.math.fmaxf16
552     libc.src.math.fmaximum_mag_numf16
553     libc.src.math.fmaximum_magf16
554     libc.src.math.fmaximum_numf16
555     libc.src.math.fmaximumf16
556     libc.src.math.fminf16
557     libc.src.math.fminimum_mag_numf16
558     libc.src.math.fminimum_magf16
559     libc.src.math.fminimum_numf16
560     libc.src.math.fminimumf16
561     libc.src.math.fmodf16
562     libc.src.math.frexpf16
563     libc.src.math.fromfpf16
564     libc.src.math.fromfpxf16
565     libc.src.math.getpayloadf16
566     libc.src.math.ilogbf16
567     libc.src.math.ldexpf16
568     libc.src.math.llogbf16
569     libc.src.math.llrintf16
570     libc.src.math.llroundf16
571     libc.src.math.log10f16
572     libc.src.math.log2f16
573     libc.src.math.logbf16
574     libc.src.math.logf16
575     libc.src.math.lrintf16
576     libc.src.math.lroundf16
577     libc.src.math.modff16
578     libc.src.math.nanf16
579     libc.src.math.nearbyintf16
580     libc.src.math.nextafterf16
581     libc.src.math.nextdownf16
582     libc.src.math.nexttowardf16
583     libc.src.math.nextupf16
584     libc.src.math.remainderf16
585     libc.src.math.remquof16
586     libc.src.math.rintf16
587     libc.src.math.roundevenf16
588     libc.src.math.roundf16
589     libc.src.math.scalblnf16
590     libc.src.math.scalbnf16
591     libc.src.math.setpayloadf16
592     libc.src.math.setpayloadsigf16
593     libc.src.math.sinhf16
594     libc.src.math.sqrtf16
595     libc.src.math.tanhf16
596     libc.src.math.totalorderf16
597     libc.src.math.totalordermagf16
598     libc.src.math.truncf16
599     libc.src.math.ufromfpf16
600     libc.src.math.ufromfpxf16
601   )
602 endif()
604 set(TARGET_LLVMLIBC_ENTRYPOINTS
605   ${TARGET_LIBC_ENTRYPOINTS}
606   ${TARGET_LIBM_ENTRYPOINTS}