[Workflow] Roll back some settings since they caused more issues
[llvm-project.git] / libc / src / math / gpu / CMakeLists.txt
blobcee7b7d9db476f2eee7a945819f10a8b08b94829
1 # Math functions not yet available in the libc project, or those not yet tuned
2 # for GPU workloads are provided as wrappers over vendor libraries. If we find
3 # them ahead of time we will import them statically. Otherwise, we will keep
4 # them as external references and expect them to be resolved by the user when
5 # they compile. In the future,we will use implementations from the 'libc'
6 # project and not provide these wrappers.
7 add_subdirectory(vendor)
9 # For the GPU we want to be able to optionally depend on the vendor libraries
10 # until we have a suitable replacement inside `libc`.
11 # TODO: We should have an option to enable or disable these on a per-function
12 # basis.
13 option(LIBC_GPU_VENDOR_MATH "Use vendor wrappers for GPU math" ON)
14 function(add_math_entrypoint_gpu_object name)
15   get_fq_target_name("vendor.${name}" fq_vendor_specific_target_name)
16   if(TARGET ${fq_vendor_specific_target_name} AND ${LIBC_GPU_VENDOR_MATH})
17     return()
18   endif()
20   add_entrypoint_object(
21     ${name}
22     ${ARGN}
23   )
24 endfunction()
26 add_math_entrypoint_gpu_object(
27   ceil
28   SRCS
29     ceil.cpp
30   HDRS
31     ../ceil.h
32   COMPILE_OPTIONS
33     -O2
36 add_math_entrypoint_gpu_object(
37   ceilf
38   SRCS
39     ceilf.cpp
40   HDRS
41     ../ceilf.h
42   COMPILE_OPTIONS
43     -O2
46 add_math_entrypoint_gpu_object(
47   copysign
48   SRCS
49     copysign.cpp
50   HDRS
51     ../copysign.h
52   COMPILE_OPTIONS
53     -O2
56 add_math_entrypoint_gpu_object(
57   copysignf
58   SRCS
59     copysignf.cpp
60   HDRS
61     ../copysignf.h
62   COMPILE_OPTIONS
63     -O2
66 add_math_entrypoint_gpu_object(
67   fabs
68   SRCS
69     fabs.cpp
70   HDRS
71     ../fabs.h
72   COMPILE_OPTIONS
73     -O2
76 add_math_entrypoint_gpu_object(
77   fabsf
78   SRCS
79     fabsf.cpp
80   HDRS
81     ../fabsf.h
82   COMPILE_OPTIONS
83     -O2
86 add_math_entrypoint_gpu_object(
87   floor
88   SRCS
89     floor.cpp
90   HDRS
91     ../floor.h
92   COMPILE_OPTIONS
93     -O2
96 add_math_entrypoint_gpu_object(
97   floorf
98   SRCS
99     floorf.cpp
100   HDRS
101     ../floorf.h
102   COMPILE_OPTIONS
103     -O2
106 add_math_entrypoint_gpu_object(
107   fma
108   SRCS
109     fma.cpp
110   HDRS
111     ../fma.h
112   COMPILE_OPTIONS
113     -O2
116 add_math_entrypoint_gpu_object(
117   fmaf
118   SRCS
119     fmaf.cpp
120   HDRS
121     ../fmaf.h
122   COMPILE_OPTIONS
123     -O2
126 add_math_entrypoint_gpu_object(
127   fmax
128   SRCS
129     fmax.cpp
130   HDRS
131     ../fmax.h
132   COMPILE_OPTIONS
133     -O2
136 add_math_entrypoint_gpu_object(
137   fmaxf
138   SRCS
139     fmaxf.cpp
140   HDRS
141     ../fmaxf.h
142   COMPILE_OPTIONS
143     -O2
146 add_math_entrypoint_gpu_object(
147   fmin
148   SRCS
149     fmin.cpp
150   HDRS
151     ../fmin.h
152   COMPILE_OPTIONS
153     -O2
156 add_math_entrypoint_gpu_object(
157   fminf
158   SRCS
159     fminf.cpp
160   HDRS
161     ../fminf.h
162   COMPILE_OPTIONS
163     -O2
166 add_math_entrypoint_gpu_object(
167   fmod
168   SRCS
169     fmod.cpp
170   HDRS
171     ../fmod.h
172   COMPILE_OPTIONS
173     -O2
176 add_math_entrypoint_gpu_object(
177   fmodf
178   SRCS
179     fmodf.cpp
180   HDRS
181     ../fmodf.h
182   COMPILE_OPTIONS
183     -O2
186 add_math_entrypoint_gpu_object(
187   modf
188   SRCS
189     modf.cpp
190   HDRS
191     ../modf.h
192   COMPILE_OPTIONS
193     -O2
196 add_math_entrypoint_gpu_object(
197   modff
198   SRCS
199     modff.cpp
200   HDRS
201     ../modff.h
202   COMPILE_OPTIONS
203     -O2
206 add_math_entrypoint_gpu_object(
207   nearbyint
208   SRCS
209     nearbyint.cpp
210   HDRS
211     ../nearbyint.h
212   COMPILE_OPTIONS
213     -O2
216 add_math_entrypoint_gpu_object(
217   nearbyintf
218   SRCS
219     nearbyintf.cpp
220   HDRS
221     ../nearbyintf.h
222   COMPILE_OPTIONS
223     -O2
226 add_math_entrypoint_gpu_object(
227   remainder
228   SRCS
229     remainder.cpp
230   HDRS
231     ../remainder.h
232   COMPILE_OPTIONS
233     -O2
236 add_math_entrypoint_gpu_object(
237   remainderf
238   SRCS
239     remainderf.cpp
240   HDRS
241     ../remainderf.h
242   COMPILE_OPTIONS
243     -O2
246 add_math_entrypoint_gpu_object(
247   rint
248   SRCS
249     rint.cpp
250   HDRS
251     ../rint.h
252   COMPILE_OPTIONS
253     -O2
256 add_math_entrypoint_gpu_object(
257   rintf
258   SRCS
259     rintf.cpp
260   HDRS
261     ../rintf.h
262   COMPILE_OPTIONS
263     -O2
266 add_math_entrypoint_gpu_object(
267   round
268   SRCS
269     round.cpp
270   HDRS
271     ../round.h
272   COMPILE_OPTIONS
273     -O2
276 add_math_entrypoint_gpu_object(
277   sinh
278   SRCS
279     sinh.cpp
280   HDRS
281     ../sinh.h
282   COMPILE_OPTIONS
283     -O2
286 add_math_entrypoint_gpu_object(
287   sinhf
288   SRCS
289     sinhf.cpp
290   HDRS
291     ../sinhf.h
292   COMPILE_OPTIONS
293     -O2
296 add_math_entrypoint_gpu_object(
297   sqrt
298   SRCS
299     sqrt.cpp
300   HDRS
301     ../sqrt.h
302   COMPILE_OPTIONS
303     -O2
306 add_math_entrypoint_gpu_object(
307   sqrtf
308   SRCS
309     sqrtf.cpp
310   HDRS
311     ../sqrtf.h
312   COMPILE_OPTIONS
313     -O2
316 add_math_entrypoint_gpu_object(
317   tan
318   SRCS
319     tan.cpp
320   HDRS
321     ../tan.h
322   COMPILE_OPTIONS
323     -O2
326 add_math_entrypoint_gpu_object(
327   tanf
328   SRCS
329     tanf.cpp
330   HDRS
331     ../tanf.h
332   COMPILE_OPTIONS
333     -O2
336 add_math_entrypoint_gpu_object(
337   tanh
338   SRCS
339     tanh.cpp
340   HDRS
341     ../tanh.h
342   COMPILE_OPTIONS
343     -O2
346 add_math_entrypoint_gpu_object(
347   tanhf
348   SRCS
349     tanhf.cpp
350   HDRS
351     ../tanhf.h
352   COMPILE_OPTIONS
353     -O2
356 add_math_entrypoint_gpu_object(
357   trunc
358   SRCS
359     trunc.cpp
360   HDRS
361     ../trunc.h
362   COMPILE_OPTIONS
363     -O2
366 add_math_entrypoint_gpu_object(
367   truncf
368   SRCS
369     truncf.cpp
370   HDRS
371     ../truncf.h
372   COMPILE_OPTIONS
373     -O2