xref: /llvm-project/libc/docs/gpu/support.rst (revision fe6a3d46aa658fdd1e9a6cbb2031a597a3e59536)
1807f0584SJoseph Huber.. _libc_gpu_support:
2807f0584SJoseph Huber
3807f0584SJoseph Huber===================
4807f0584SJoseph HuberSupported Functions
5807f0584SJoseph Huber===================
6807f0584SJoseph Huber
7807f0584SJoseph Huber.. include:: ../check.rst
8807f0584SJoseph Huber
9807f0584SJoseph Huber.. contents:: Table of Contents
10807f0584SJoseph Huber  :depth: 4
11807f0584SJoseph Huber  :local:
12807f0584SJoseph Huber
13807f0584SJoseph HuberThe following functions and headers are supported at least partially on the
14807f0584SJoseph Huberdevice. Some functions are implemented fully on the GPU, while others require a
1570b1c399SJoseph Huber`remote procedure call <libc_gpu_rpc>`_.
16807f0584SJoseph Huber
17807f0584SJoseph Huberctype.h
18807f0584SJoseph Huber-------
19807f0584SJoseph Huber
20807f0584SJoseph Huber=============  =========  ============
21807f0584SJoseph HuberFunction Name  Available  RPC Required
22807f0584SJoseph Huber=============  =========  ============
23807f0584SJoseph Huberisalnum        |check|
24807f0584SJoseph Huberisalpha        |check|
25807f0584SJoseph Huberisascii        |check|
26807f0584SJoseph Huberisblank        |check|
27807f0584SJoseph Huberiscntrl        |check|
28807f0584SJoseph Huberisdigit        |check|
29807f0584SJoseph Huberisgraph        |check|
30807f0584SJoseph Huberislower        |check|
31807f0584SJoseph Huberisprint        |check|
32807f0584SJoseph Huberispunct        |check|
33807f0584SJoseph Huberisspace        |check|
34807f0584SJoseph Huberisupper        |check|
35807f0584SJoseph Huberisxdigit       |check|
36807f0584SJoseph Hubertoascii        |check|
37807f0584SJoseph Hubertolower        |check|
38807f0584SJoseph Hubertoupper        |check|
39807f0584SJoseph Huber=============  =========  ============
40807f0584SJoseph Huber
41807f0584SJoseph Huberstring.h
42807f0584SJoseph Huber--------
43807f0584SJoseph Huber
44807f0584SJoseph Huber=============  =========  ============
45807f0584SJoseph HuberFunction Name  Available  RPC Required
46807f0584SJoseph Huber=============  =========  ============
47807f0584SJoseph Huberbcmp           |check|
4825bf1ae9SJoseph Huberbcopy          |check|
49807f0584SJoseph Huberbzero          |check|
50807f0584SJoseph Hubermemccpy        |check|
5125bf1ae9SJoseph Hubermemchr         |check|
52807f0584SJoseph Hubermemcmp         |check|
53807f0584SJoseph Hubermemcpy         |check|
5425bf1ae9SJoseph Hubermemmem         |check|
55807f0584SJoseph Hubermemmove        |check|
56807f0584SJoseph Hubermempcpy        |check|
5725bf1ae9SJoseph Hubermemrchr        |check|
58807f0584SJoseph Hubermemset         |check|
59807f0584SJoseph Huberstpcpy         |check|
60807f0584SJoseph Huberstpncpy        |check|
61807f0584SJoseph Huberstrcat         |check|
6225bf1ae9SJoseph Huberstrchr         |check|
6325bf1ae9SJoseph Huberstrchrnul      |check|
64807f0584SJoseph Huberstrcmp         |check|
6525bf1ae9SJoseph Huberstrcoll        |check|
66807f0584SJoseph Huberstrcpy         |check|
67807f0584SJoseph Huberstrcspn        |check|
6825bf1ae9SJoseph Huberstrdup         |check|
6938f1dd2eSJoseph Huberstrerror       |check|
70807f0584SJoseph Huberstrlcat        |check|
71807f0584SJoseph Huberstrlcpy        |check|
72807f0584SJoseph Huberstrlen         |check|
73807f0584SJoseph Huberstrncat        |check|
74807f0584SJoseph Huberstrncmp        |check|
75807f0584SJoseph Huberstrncpy        |check|
7625bf1ae9SJoseph Huberstrndup        |check|
77807f0584SJoseph Huberstrnlen        |check|
7825bf1ae9SJoseph Huberstrpbrk        |check|
7925bf1ae9SJoseph Huberstrrchr        |check|
8025bf1ae9SJoseph Huberstrsep         |check|
81807f0584SJoseph Huberstrspn         |check|
8225bf1ae9SJoseph Huberstrstr         |check|
83807f0584SJoseph Huberstrtok         |check|
84807f0584SJoseph Huberstrtok_r       |check|
8525bf1ae9SJoseph Huberstrxfrm        |check|
86807f0584SJoseph Huber=============  =========  ============
87807f0584SJoseph Huber
883bbe0f90SJoseph Huberstrings.h
893bbe0f90SJoseph Huber---------
903bbe0f90SJoseph Huber
913bbe0f90SJoseph Huber=============  =========  ============
923bbe0f90SJoseph HuberFunction Name  Available  RPC Required
933bbe0f90SJoseph Huber=============  =========  ============
943bbe0f90SJoseph Huberbcmp           |check|
953bbe0f90SJoseph Huberbcopy          |check|
963bbe0f90SJoseph Huberbzero          |check|
973bbe0f90SJoseph Huberstrcasecmp     |check|
983bbe0f90SJoseph Huberstrcasestr     |check|
993bbe0f90SJoseph Huberindex          |check|
1003bbe0f90SJoseph Huberrindex         |check|
1013bbe0f90SJoseph Huber=============  =========  ============
1023bbe0f90SJoseph Huber
1035facb406SNick Desaulniersstdbit.h
1045facb406SNick Desaulniers--------
1055facb406SNick Desaulniers
1065facb406SNick Desaulniers============================  =========  ============
1075facb406SNick DesaulniersFunction Name                 Available  RPC Required
1085facb406SNick Desaulniers============================  =========  ============
1095facb406SNick Desaulniersstdc_leading_zeros_uc         |check|
1105facb406SNick Desaulniersstdc_leading_zeros_us         |check|
1115facb406SNick Desaulniersstdc_leading_zeros_ui         |check|
1125facb406SNick Desaulniersstdc_leading_zeros_ul         |check|
1135facb406SNick Desaulniersstdc_leading_zeros_ull        |check|
1145facb406SNick Desaulniersstdc_trailing_zeros_uc        |check|
1155facb406SNick Desaulniersstdc_trailing_zeros_us        |check|
1165facb406SNick Desaulniersstdc_trailing_zeros_ui        |check|
1175facb406SNick Desaulniersstdc_trailing_zeros_ul        |check|
1185facb406SNick Desaulniersstdc_trailing_zeros_ull       |check|
1195facb406SNick Desaulniersstdc_trailing_ones_uc         |check|
1205facb406SNick Desaulniersstdc_trailing_ones_us         |check|
1215facb406SNick Desaulniersstdc_trailing_ones_ui         |check|
1225facb406SNick Desaulniersstdc_trailing_ones_ul         |check|
1235facb406SNick Desaulniersstdc_trailing_ones_ull        |check|
1245facb406SNick Desaulniersstdc_first_leading_zero_uc    |check|
1255facb406SNick Desaulniersstdc_first_leading_zero_us    |check|
1265facb406SNick Desaulniersstdc_first_leading_zero_ui    |check|
1275facb406SNick Desaulniersstdc_first_leading_zero_ul    |check|
1285facb406SNick Desaulniersstdc_first_leading_zero_ull   |check|
1295facb406SNick Desaulniersstdc_first_leading_one_uc     |check|
1305facb406SNick Desaulniersstdc_first_leading_one_us     |check|
1315facb406SNick Desaulniersstdc_first_leading_one_ui     |check|
1325facb406SNick Desaulniersstdc_first_leading_one_ul     |check|
1335facb406SNick Desaulniersstdc_first_leading_one_ull    |check|
1345facb406SNick Desaulniersstdc_first_trailing_zero_uc   |check|
1355facb406SNick Desaulniersstdc_first_trailing_zero_us   |check|
1365facb406SNick Desaulniersstdc_first_trailing_zero_ui   |check|
1375facb406SNick Desaulniersstdc_first_trailing_zero_ul   |check|
1385facb406SNick Desaulniersstdc_first_trailing_zero_ull  |check|
1395facb406SNick Desaulniersstdc_first_trailing_one_uc    |check|
1405facb406SNick Desaulniersstdc_first_trailing_one_us    |check|
1415facb406SNick Desaulniersstdc_first_trailing_one_ui    |check|
1425facb406SNick Desaulniersstdc_first_trailing_one_ul    |check|
1435facb406SNick Desaulniersstdc_first_trailing_one_ull   |check|
1445facb406SNick Desaulniersstdc_count_zeros_uc           |check|
1455facb406SNick Desaulniersstdc_count_zeros_us           |check|
1465facb406SNick Desaulniersstdc_count_zeros_ui           |check|
1475facb406SNick Desaulniersstdc_count_zeros_ul           |check|
1485facb406SNick Desaulniersstdc_count_zeros_ull          |check|
1495facb406SNick Desaulniersstdc_count_ones_uc            |check|
1505facb406SNick Desaulniersstdc_count_ones_us            |check|
1515facb406SNick Desaulniersstdc_count_ones_ui            |check|
1525facb406SNick Desaulniersstdc_count_ones_ul            |check|
1535facb406SNick Desaulniersstdc_count_ones_ull           |check|
1545facb406SNick Desaulniersstdc_has_single_bit_uc        |check|
1555facb406SNick Desaulniersstdc_has_single_bit_us        |check|
1565facb406SNick Desaulniersstdc_has_single_bit_ui        |check|
1575facb406SNick Desaulniersstdc_has_single_bit_ul        |check|
1585facb406SNick Desaulniersstdc_has_single_bit_ull       |check|
1595facb406SNick Desaulniersstdc_bit_width_uc             |check|
1605facb406SNick Desaulniersstdc_bit_width_us             |check|
1615facb406SNick Desaulniersstdc_bit_width_ui             |check|
1625facb406SNick Desaulniersstdc_bit_width_ul             |check|
1635facb406SNick Desaulniersstdc_bit_width_ull            |check|
1645facb406SNick Desaulniersstdc_bit_floor_uc             |check|
1655facb406SNick Desaulniersstdc_bit_floor_us             |check|
1665facb406SNick Desaulniersstdc_bit_floor_ui             |check|
1675facb406SNick Desaulniersstdc_bit_floor_ul             |check|
1685facb406SNick Desaulniersstdc_bit_floor_ull            |check|
1695facb406SNick Desaulniersstdc_bit_ceil_uc              |check|
1705facb406SNick Desaulniersstdc_bit_ceil_us              |check|
1715facb406SNick Desaulniersstdc_bit_ceil_ui              |check|
1725facb406SNick Desaulniersstdc_bit_ceil_ul              |check|
1735facb406SNick Desaulniersstdc_bit_ceil_ull             |check|
1745facb406SNick Desaulniers============================  =========  ============
1755facb406SNick Desaulniers
176807f0584SJoseph Huberstdlib.h
177807f0584SJoseph Huber--------
178807f0584SJoseph Huber
179807f0584SJoseph Huber=============  =========  ============
180807f0584SJoseph HuberFunction Name  Available  RPC Required
181807f0584SJoseph Huber=============  =========  ============
182f7d5e9bcSJoseph Huberabs            |check|
183fd14f7adSJoseph Huberatoi           |check|
184fd14f7adSJoseph Huberatof           |check|
185fd14f7adSJoseph Huberatol           |check|
186fd14f7adSJoseph Huberatoll          |check|
187667c1035SJoseph Huberexit           |check|    |check|
18807102a11SJoseph Huberabort          |check|    |check|
18916d11e26SJoseph Hubersystem         |check|    |check|
190f7d5e9bcSJoseph Huberlabs           |check|
191f7d5e9bcSJoseph Huberllabs          |check|
192b15ac1fdSJoseph Huberdiv            |check|
193b15ac1fdSJoseph Huberldiv           |check|
194b15ac1fdSJoseph Huberlldiv          |check|
195bf85f273SJoseph Huberbsearch        |check|
196bf85f273SJoseph Huberqsort          |check|
197bf85f273SJoseph Huberqsort_r        |check|
198fd14f7adSJoseph Huberstrtod         |check|
199fd14f7adSJoseph Huberstrtof         |check|
200fd14f7adSJoseph Huberstrtol         |check|
201fd14f7adSJoseph Huberstrtold        |check|
202fd14f7adSJoseph Huberstrtoll        |check|
203fd14f7adSJoseph Huberstrtoul        |check|
204fd14f7adSJoseph Huberstrtoull       |check|
205e1015ae5SJoseph Hubersrand          |check|
206e1015ae5SJoseph Huberrand           |check|
207807f0584SJoseph Huber=============  =========  ============
2088aad5012SJoseph Huber
2097e88e26dSJoseph Huberinttypes.h
2101d0d57e8SSiva Chandra----------
2117e88e26dSJoseph Huber
2127e88e26dSJoseph Huber=============  =========  ============
2137e88e26dSJoseph HuberFunction Name  Available  RPC Required
2147e88e26dSJoseph Huber=============  =========  ============
2157e88e26dSJoseph Huberimaxabs        |check|
2167e88e26dSJoseph Huberimaxdiv        |check|
2177e88e26dSJoseph Huberstrtoimax      |check|
2187e88e26dSJoseph Huberstrtoumax      |check|
2197e88e26dSJoseph Huber=============  =========  ============
2207e88e26dSJoseph Huber
2218aad5012SJoseph Huberstdio.h
22260c0d303SJoseph Huber-------
2238aad5012SJoseph Huber
2248aad5012SJoseph Huber=============  =========  ============
2258aad5012SJoseph HuberFunction Name  Available  RPC Required
2268aad5012SJoseph Huber=============  =========  ============
227a1be5d69SJoseph Huberfeof           |check|    |check|
228a1be5d69SJoseph Huberferror         |check|    |check|
229a1be5d69SJoseph Huberclearerr       |check|    |check|
2307ac8e26fSJoseph Huberfseek          |check|    |check|
2317ac8e26fSJoseph Huberftell          |check|    |check|
2327ac8e26fSJoseph Huberfflush         |check|    |check|
233a1be5d69SJoseph Huberfgetc          |check|    |check|
234a1be5d69SJoseph Huberfgets          |check|    |check|
235ddc30ff8SJoseph Huberungetc         |check|    |check|
236a1be5d69SJoseph Hubergetc           |check|    |check|
237a1be5d69SJoseph Hubergetchar        |check|    |check|
2388aad5012SJoseph Huberputs           |check|    |check|
2398aad5012SJoseph Huberfputs          |check|    |check|
24060c0d303SJoseph Huberfputc          |check|    |check|
24160c0d303SJoseph Huberfwrite         |check|    |check|
242ec0e6ef0SJoseph Huberremove         |check|    |check|
243*fe6a3d46SJoseph Huberrename         |check|    |check|
24460c0d303SJoseph Huberputc           |check|    |check|
24549b2c30fSJoseph Huberprintf         |check|    |check|
24649b2c30fSJoseph Hubervprintf        |check|    |check|
24749b2c30fSJoseph Huberfprintf        |check|    |check|
24849b2c30fSJoseph Hubervfprintf       |check|    |check|
2492e3ee31dSJoseph Hubersprintf        |check|
2502e3ee31dSJoseph Hubersnprintf       |check|
2512e3ee31dSJoseph Hubervsprintf       |check|
2522e3ee31dSJoseph Hubervsnprintf      |check|
2532e3ee31dSJoseph Hubersscanf         |check|
2543bbe0f90SJoseph Huberscanf          |check|    |check|
2553bbe0f90SJoseph Huberfscanf         |check|    |check|
25660c0d303SJoseph Huberputchar        |check|    |check|
2571e573f37SJoseph Huberfclose         |check|    |check|
2581e573f37SJoseph Huberfopen          |check|    |check|
2591e573f37SJoseph Huberfread          |check|    |check|
2608aad5012SJoseph Huber=============  =========  ============
26130307a7bSJoseph Huber
262533145c4SJoseph Hubertime.h
26360c0d303SJoseph Huber------
26430307a7bSJoseph Huber
26530307a7bSJoseph Huber=============  =========  ============
26630307a7bSJoseph HuberFunction Name  Available  RPC Required
26730307a7bSJoseph Huber=============  =========  ============
26830307a7bSJoseph Huberclock          |check|
2698393ea5dSJoseph Huberclock_gettime  |check|
270ca10bc4fSJoseph Hubernanosleep      |check|
27130307a7bSJoseph Huber=============  =========  ============
272533145c4SJoseph Huber
273533145c4SJoseph Huberassert.h
274533145c4SJoseph Huber--------
275533145c4SJoseph Huber
276533145c4SJoseph Huber=============  =========  ============
277533145c4SJoseph HuberFunction Name  Available  RPC Required
278533145c4SJoseph Huber=============  =========  ============
279533145c4SJoseph Huberassert         |check|    |check|
280533145c4SJoseph Huber__assert_fail  |check|    |check|
281533145c4SJoseph Huber=============  =========  ============
282