[libc][math] Implement powf function correctly rounded to all rounding modes. (#71188)
[llvm-project.git] / libc / test / src / math / CMakeLists.txt
blob47ea0a9639b033d81e8cdd24fcf59d827dea8cd5
1 add_custom_target(libc-math-unittests)
3 add_library(
4   libc_math_test_utils
5   RandUtils.cpp
6   RandUtils.h
9 add_fp_unittest(
10   cosf_test
11   NEED_MPFR
12   SUITE
13     libc-math-unittests
14   SRCS
15     cosf_test.cpp
16   HDRS
17     sdcomp26094.h
18   DEPENDS
19     libc.src.errno.errno
20     libc.src.math.cosf
21     libc.src.__support.CPP.array
22     libc.src.__support.FPUtil.fp_bits
25 add_fp_unittest(
26   cos_test
27   NEED_MPFR
28   SUITE
29     libc-math-unittests
30   SRCS
31     cos_test.cpp
32   DEPENDS
33     libc.src.math.cos
34     libc.src.__support.FPUtil.fp_bits
37 add_fp_unittest(
38   sinf_test
39   NEED_MPFR
40   SUITE
41     libc-math-unittests
42   SRCS
43     sinf_test.cpp
44   HDRS
45     sdcomp26094.h
46   DEPENDS
47     libc.src.errno.errno
48     libc.src.math.sinf
49     libc.src.__support.CPP.array
50     libc.src.__support.FPUtil.fp_bits
53 add_fp_unittest(
54   sin_test
55   NEED_MPFR
56   SUITE
57     libc-math-unittests
58   SRCS
59     sin_test.cpp
60   DEPENDS
61     libc.src.math.sin
62     libc.src.__support.FPUtil.fp_bits
65 add_fp_unittest(
66   sincosf_test
67   NEED_MPFR
68   SUITE
69     libc-math-unittests
70   SRCS
71     sincosf_test.cpp
72   HDRS
73     sdcomp26094.h
74   DEPENDS
75     libc.src.errno.errno
76     libc.src.math.sincosf
77     libc.src.__support.CPP.array
78     libc.src.__support.FPUtil.fp_bits
81 add_fp_unittest(
82   tanf_test
83   NEED_MPFR
84   SUITE
85     libc-math-unittests
86   SRCS
87     tanf_test.cpp
88   HDRS
89     sdcomp26094.h
90   DEPENDS
91     libc.src.errno.errno
92     libc.src.math.tanf
93     libc.src.__support.CPP.array
94     libc.src.__support.FPUtil.fp_bits
97 add_fp_unittest(
98   fabs_test
99   NEED_MPFR
100   SUITE
101     libc-math-unittests
102   SRCS
103     fabs_test.cpp
104   HDRS
105     FAbsTest.h
106   DEPENDS
107     libc.include.math
108     libc.src.math.fabs
109     libc.src.__support.FPUtil.fp_bits
112 add_fp_unittest(
113   fabsf_test
114   NEED_MPFR
115   SUITE
116     libc-math-unittests
117   SRCS
118     fabsf_test.cpp
119   HDRS
120     FAbsTest.h
121   DEPENDS
122     libc.include.math
123     libc.src.math.fabsf
124     libc.src.__support.FPUtil.fp_bits
127 add_fp_unittest(
128   fabsl_test
129   NEED_MPFR
130   SUITE
131     libc-math-unittests
132   SRCS
133     fabsl_test.cpp
134   HDRS
135     FAbsTest.h
136   DEPENDS
137     libc.include.math
138     libc.src.math.fabsl
139     libc.src.__support.FPUtil.fp_bits
142 add_fp_unittest(
143   trunc_test
144   NEED_MPFR
145   SUITE
146     libc-math-unittests
147   SRCS
148     trunc_test.cpp
149   HDRS
150     TruncTest.h
151   DEPENDS
152     libc.include.math
153     libc.src.math.trunc
154     libc.src.__support.FPUtil.fp_bits
157 add_fp_unittest(
158   truncf_test
159   NEED_MPFR
160   SUITE
161     libc-math-unittests
162   SRCS
163     truncf_test.cpp
164   HDRS
165     TruncTest.h
166   DEPENDS
167     libc.include.math
168     libc.src.math.truncf
169     libc.src.__support.FPUtil.fp_bits
172 add_fp_unittest(
173   truncl_test
174   NEED_MPFR
175   SUITE
176     libc-math-unittests
177   SRCS
178     truncl_test.cpp
179   HDRS
180     TruncTest.h
181   DEPENDS
182     libc.include.math
183     libc.src.math.truncl
184     libc.src.__support.FPUtil.fp_bits
187 add_fp_unittest(
188   ceil_test
189   NEED_MPFR
190   SUITE
191     libc-math-unittests
192   SRCS
193     ceil_test.cpp
194   HDRS
195     CeilTest.h
196   DEPENDS
197     libc.include.math
198     libc.src.math.ceil
199     libc.src.__support.FPUtil.fp_bits
202 add_fp_unittest(
203   ceilf_test
204   NEED_MPFR
205   SUITE
206     libc-math-unittests
207   SRCS
208     ceilf_test.cpp
209   HDRS
210     CeilTest.h
211   DEPENDS
212     libc.include.math
213     libc.src.math.ceilf
214     libc.src.__support.FPUtil.fp_bits
217 add_fp_unittest(
218   ceill_test
219   NEED_MPFR
220   SUITE
221     libc-math-unittests
222   SRCS
223     ceill_test.cpp
224   HDRS
225     CeilTest.h
226   DEPENDS
227     libc.include.math
228     libc.src.math.ceill
229     libc.src.__support.FPUtil.fp_bits
232 add_fp_unittest(
233   floor_test
234   NEED_MPFR
235   SUITE
236     libc-math-unittests
237   SRCS
238     floor_test.cpp
239   HDRS
240     FloorTest.h
241   DEPENDS
242     libc.include.math
243     libc.src.math.floor
244     libc.src.__support.FPUtil.fp_bits
247 add_fp_unittest(
248   floorf_test
249   NEED_MPFR
250   SUITE
251     libc-math-unittests
252   SRCS
253     floorf_test.cpp
254   HDRS
255     FloorTest.h
256   DEPENDS
257     libc.include.math
258     libc.src.math.floorf
259     libc.src.__support.FPUtil.fp_bits
262 add_fp_unittest(
263   floorl_test
264   NEED_MPFR
265   SUITE
266     libc-math-unittests
267   SRCS
268     floorl_test.cpp
269   HDRS
270     FloorTest.h
271   DEPENDS
272     libc.include.math
273     libc.src.math.floorl
274     libc.src.__support.FPUtil.fp_bits
277 add_fp_unittest(
278   round_test
279   NEED_MPFR
280   SUITE
281     libc-math-unittests
282   SRCS
283     round_test.cpp
284   HDRS
285     RoundTest.h
286   DEPENDS
287     libc.include.math
288     libc.src.math.round
289     libc.src.__support.FPUtil.fp_bits
292 add_fp_unittest(
293   roundf_test
294   NEED_MPFR
295   SUITE
296     libc-math-unittests
297   SRCS
298     roundf_test.cpp
299   HDRS
300     RoundTest.h
301   DEPENDS
302     libc.include.math
303     libc.src.math.roundf
304     libc.src.__support.FPUtil.fp_bits
307 add_fp_unittest(
308   roundl_test
309   NEED_MPFR
310   SUITE
311     libc-math-unittests
312   SRCS
313     roundl_test.cpp
314   HDRS
315     RoundTest.h
316   DEPENDS
317     libc.include.math
318     libc.src.math.roundl
319     libc.src.__support.FPUtil.fp_bits
322 add_fp_unittest(
323   lround_test
324   NEED_MPFR
325   SUITE
326     libc-math-unittests
327   SRCS
328     lround_test.cpp
329   HDRS
330     RoundToIntegerTest.h
331   DEPENDS
332     libc.include.math
333     libc.src.errno.errno
334     libc.src.fenv.feclearexcept
335     libc.src.fenv.feraiseexcept
336     libc.src.fenv.fetestexcept
337     libc.src.math.lround
338     libc.src.__support.FPUtil.fp_bits
341 add_fp_unittest(
342   lroundf_test
343   NEED_MPFR
344   SUITE
345     libc-math-unittests
346   SRCS
347     lroundf_test.cpp
348   HDRS
349     RoundToIntegerTest.h
350   DEPENDS
351     libc.include.math
352     libc.src.errno.errno
353     libc.src.fenv.feclearexcept
354     libc.src.fenv.feraiseexcept
355     libc.src.fenv.fetestexcept
356     libc.src.math.lroundf
357     libc.src.__support.FPUtil.fp_bits
360 add_fp_unittest(
361   lroundl_test
362   NEED_MPFR
363   SUITE
364     libc-math-unittests
365   SRCS
366     lroundl_test.cpp
367   HDRS
368     RoundToIntegerTest.h
369   DEPENDS
370     libc.include.math
371     libc.src.errno.errno
372     libc.src.fenv.feclearexcept
373     libc.src.fenv.feraiseexcept
374     libc.src.fenv.fetestexcept
375     libc.src.math.lroundl
376     libc.src.__support.FPUtil.fp_bits
379 add_fp_unittest(
380   llround_test
381   NEED_MPFR
382   SUITE
383     libc-math-unittests
384   SRCS
385     llround_test.cpp
386   HDRS
387     RoundToIntegerTest.h
388   DEPENDS
389     libc.include.math
390     libc.src.errno.errno
391     libc.src.fenv.feclearexcept
392     libc.src.fenv.feraiseexcept
393     libc.src.fenv.fetestexcept
394     libc.src.math.llround
395     libc.src.__support.FPUtil.fp_bits
398 add_fp_unittest(
399   llroundf_test
400   NEED_MPFR
401   SUITE
402     libc-math-unittests
403   SRCS
404     llroundf_test.cpp
405   HDRS
406     RoundToIntegerTest.h
407   DEPENDS
408     libc.include.math
409     libc.src.errno.errno
410     libc.src.fenv.feclearexcept
411     libc.src.fenv.feraiseexcept
412     libc.src.fenv.fetestexcept
413     libc.src.math.llroundf
414     libc.src.__support.FPUtil.fp_bits
417 add_fp_unittest(
418   llroundl_test
419   NEED_MPFR
420   SUITE
421     libc-math-unittests
422   SRCS
423     llroundl_test.cpp
424   HDRS
425     RoundToIntegerTest.h
426   DEPENDS
427     libc.include.math
428     libc.src.errno.errno
429     libc.src.fenv.feclearexcept
430     libc.src.fenv.feraiseexcept
431     libc.src.fenv.fetestexcept
432     libc.src.math.llroundl
433     libc.src.__support.FPUtil.fp_bits
436 add_fp_unittest(
437   rint_test
438   NEED_MPFR
439   SUITE
440     libc-math-unittests
441   SRCS
442     rint_test.cpp
443   HDRS
444     RIntTest.h
445   DEPENDS
446     libc.include.math
447     libc.src.math.rint
448     libc.src.__support.FPUtil.fenv_impl
449     libc.src.__support.FPUtil.fp_bits
452 add_fp_unittest(
453   rintf_test
454   NEED_MPFR
455   SUITE
456     libc-math-unittests
457   SRCS
458     rintf_test.cpp
459   HDRS
460     RIntTest.h
461   DEPENDS
462     libc.include.math
463     libc.src.math.rintf
464     libc.src.__support.FPUtil.fenv_impl
465     libc.src.__support.FPUtil.fp_bits
468 add_fp_unittest(
469   rintl_test
470   NEED_MPFR
471   SUITE
472     libc-math-unittests
473   SRCS
474     rintl_test.cpp
475   HDRS
476     RIntTest.h
477   DEPENDS
478     libc.include.math
479     libc.src.math.rintl
480     libc.src.__support.FPUtil.fenv_impl
481     libc.src.__support.FPUtil.fp_bits
484 add_fp_unittest(
485   lrint_test
486   NEED_MPFR
487   SUITE
488     libc-math-unittests
489   SRCS
490     lrint_test.cpp
491   HDRS
492     RoundToIntegerTest.h
493   DEPENDS
494     libc.include.math
495     libc.src.math.lrint
496     libc.src.__support.FPUtil.fenv_impl
497     libc.src.__support.FPUtil.fp_bits
500 add_fp_unittest(
501   lrintf_test
502   NEED_MPFR
503   SUITE
504     libc-math-unittests
505   SRCS
506     lrintf_test.cpp
507   HDRS
508     RoundToIntegerTest.h
509   DEPENDS
510     libc.include.math
511     libc.src.math.lrintf
512     libc.src.__support.FPUtil.fenv_impl
513     libc.src.__support.FPUtil.fp_bits
516 add_fp_unittest(
517   lrintl_test
518   NEED_MPFR
519   SUITE
520     libc-math-unittests
521   SRCS
522     lrintl_test.cpp
523   HDRS
524     RoundToIntegerTest.h
525   DEPENDS
526     libc.include.math
527     libc.src.math.lrintl
528     libc.src.__support.FPUtil.fenv_impl
529     libc.src.__support.FPUtil.fp_bits
532 add_fp_unittest(
533   llrint_test
534   NEED_MPFR
535   SUITE
536     libc-math-unittests
537   SRCS
538     llrint_test.cpp
539   HDRS
540     RoundToIntegerTest.h
541   DEPENDS
542     libc.include.math
543     libc.src.math.llrint
544     libc.src.__support.FPUtil.fenv_impl
545     libc.src.__support.FPUtil.fp_bits
548 add_fp_unittest(
549   llrintf_test
550   NEED_MPFR
551   SUITE
552     libc-math-unittests
553   SRCS
554     llrintf_test.cpp
555   HDRS
556     RoundToIntegerTest.h
557   DEPENDS
558     libc.include.math
559     libc.src.math.llrintf
560     libc.src.__support.FPUtil.fenv_impl
561     libc.src.__support.FPUtil.fp_bits
564 add_fp_unittest(
565   llrintl_test
566   NEED_MPFR
567   SUITE
568     libc-math-unittests
569   SRCS
570     llrintl_test.cpp
571   HDRS
572     RoundToIntegerTest.h
573   DEPENDS
574     libc.include.math
575     libc.src.math.llrintl
576     libc.src.__support.FPUtil.fenv_impl
577     libc.src.__support.FPUtil.fp_bits
580 add_fp_unittest(
581   expf_test
582   NEED_MPFR
583   SUITE
584     libc-math-unittests
585   SRCS
586     expf_test.cpp
587   DEPENDS
588     libc.src.errno.errno
589     libc.include.math
590     libc.src.math.expf
591     libc.src.__support.FPUtil.fp_bits
594 add_fp_unittest(
595  exp_test
596  NEED_MPFR
597  SUITE
598    libc-math-unittests
599  SRCS
600    exp_test.cpp
601  DEPENDS
602    libc.src.errno.errno
603    libc.include.math
604    libc.src.math.exp
605    libc.src.__support.FPUtil.fp_bits
608 add_fp_unittest(
609   exp2f_test
610   NEED_MPFR
611   SUITE
612     libc-math-unittests
613   SRCS
614     exp2f_test.cpp
615   DEPENDS
616     libc.src.errno.errno
617     libc.include.math
618     libc.src.math.exp2f
619     libc.src.__support.FPUtil.fp_bits
622 add_fp_unittest(
623  exp2_test
624  NEED_MPFR
625  SUITE
626    libc-math-unittests
627  SRCS
628    exp2_test.cpp
629  DEPENDS
630    libc.src.errno.errno
631    libc.include.math
632    libc.src.math.exp2
633    libc.src.__support.FPUtil.fp_bits
636 add_fp_unittest(
637   exp10f_test
638   NEED_MPFR
639   SUITE
640     libc-math-unittests
641   SRCS
642     exp10f_test.cpp
643   DEPENDS
644     libc.src.errno.errno
645     libc.include.math
646     libc.src.math.exp10f
647     libc.src.__support.FPUtil.fp_bits
650 add_fp_unittest(
651  exp10_test
652  NEED_MPFR
653  SUITE
654    libc-math-unittests
655  SRCS
656    exp10_test.cpp
657  DEPENDS
658    libc.src.errno.errno
659    libc.include.math
660    libc.src.math.exp10
661    libc.src.__support.FPUtil.fp_bits
664 add_fp_unittest(
665   copysign_test
666   SUITE
667     libc-math-unittests
668   SRCS
669     copysign_test.cpp
670   HDRS
671     CopySignTest.h
672   DEPENDS
673     libc.include.math
674     libc.src.math.copysign
675     libc.src.__support.FPUtil.fp_bits
678 add_fp_unittest(
679   copysignf_test
680   SUITE
681     libc-math-unittests
682   SRCS
683     copysignf_test.cpp
684   HDRS
685     CopySignTest.h
686   DEPENDS
687     libc.include.math
688     libc.src.math.copysignf
689     libc.src.__support.FPUtil.fp_bits
692 add_fp_unittest(
693   copysignl_test
694   SUITE
695     libc-math-unittests
696   SRCS
697     copysignl_test.cpp
698   HDRS
699     CopySignTest.h
700   DEPENDS
701     libc.include.math
702     libc.src.math.copysignl
703     libc.src.__support.FPUtil.fp_bits
706 add_fp_unittest(
707   frexp_test
708   NEED_MPFR
709   SUITE
710     libc-math-unittests
711   SRCS
712     frexp_test.cpp
713   HDRS
714     FrexpTest.h
715   DEPENDS
716     libc.include.math
717     libc.src.math.frexp
718     libc.src.__support.FPUtil.basic_operations
721 add_fp_unittest(
722   frexpf_test
723   NEED_MPFR
724   SUITE
725     libc-math-unittests
726   SRCS
727     frexpf_test.cpp
728   HDRS
729     FrexpTest.h
730   DEPENDS
731     libc.include.math
732     libc.src.math.frexpf
733     libc.src.__support.FPUtil.basic_operations
736 add_fp_unittest(
737   frexpl_test
738   NEED_MPFR
739   SUITE
740     libc-math-unittests
741   SRCS
742     frexpl_test.cpp
743   HDRS
744     FrexpTest.h
745   DEPENDS
746     libc.include.math
747     libc.src.math.frexpl
748     libc.src.__support.FPUtil.basic_operations
751 # FIXME: These tests are currently broken for NVPTX.
752 if(NOT LIBC_GPU_TARGET_ARCHITECTURE_IS_NVPTX)
753   add_fp_unittest(
754     ilogb_test
755     SUITE
756       libc-math-unittests
757     SRCS
758       ilogb_test.cpp
759     HDRS
760       ILogbTest.h
761     DEPENDS
762       libc.include.math
763       libc.src.math.ilogb
764       libc.src.__support.FPUtil.fp_bits
765       libc.src.__support.FPUtil.manipulation_functions
766   )
768   add_fp_unittest(
769     ilogbf_test
770     SUITE
771       libc-math-unittests
772     SRCS
773       ilogbf_test.cpp
774     HDRS
775       ILogbTest.h
776     DEPENDS
777       libc.include.math
778       libc.src.math.ilogbf
779       libc.src.__support.FPUtil.fp_bits
780       libc.src.__support.FPUtil.manipulation_functions
781   )
782 endif()
784 add_fp_unittest(
785   ilogbl_test
786   SUITE
787     libc-math-unittests
788   SRCS
789     ilogbl_test.cpp
790   HDRS
791     ILogbTest.h
792   DEPENDS
793     libc.include.math
794     libc.src.math.ilogbl
795     libc.src.__support.FPUtil.fp_bits
796     libc.src.__support.FPUtil.manipulation_functions
799 add_fp_unittest(
800   ldexp_test
801   SUITE
802     libc-math-unittests
803   SRCS
804     ldexp_test.cpp
805   HDRS
806     LdExpTest.h
807   DEPENDS
808     libc.include.math
809     libc.src.math.ldexp
810     libc.src.__support.FPUtil.fp_bits
811     libc.src.__support.FPUtil.normal_float
814 add_fp_unittest(
815   ldexpf_test
816   SUITE
817     libc-math-unittests
818   SRCS
819     ldexpf_test.cpp
820   HDRS
821     LdExpTest.h
822   DEPENDS
823     libc.include.math
824     libc.src.math.ldexpf
825     libc.src.__support.FPUtil.fp_bits
826     libc.src.__support.FPUtil.normal_float
829 add_fp_unittest(
830   ldexpl_test
831   SUITE
832     libc-math-unittests
833   SRCS
834     ldexpl_test.cpp
835   HDRS
836     LdExpTest.h
837   DEPENDS
838     libc.include.math
839     libc.src.math.ldexpl
840     libc.src.__support.FPUtil.fp_bits
841     libc.src.__support.FPUtil.normal_float
844 add_fp_unittest(
845   logb_test
846   SUITE
847     libc-math-unittests
848   SRCS
849     logb_test.cpp
850   DEPENDS
851     libc.include.math
852     libc.src.math.logb
853     libc.src.__support.FPUtil.manipulation_functions
856 add_fp_unittest(
857   logbf_test
858   SUITE
859     libc-math-unittests
860   SRCS
861     logbf_test.cpp
862   DEPENDS
863     libc.include.math
864     libc.src.math.logbf
865     libc.src.__support.FPUtil.manipulation_functions
868 add_fp_unittest(
869   logbl_test
870   SUITE
871     libc-math-unittests
872   SRCS
873     logbl_test.cpp
874   HDRS
875     LogbTest.h
876   DEPENDS
877     libc.include.math
878     libc.src.math.logbl
879     libc.src.__support.FPUtil.manipulation_functions
882 add_fp_unittest(
883   modf_test
884   SUITE
885     libc-math-unittests
886   SRCS
887     modf_test.cpp
888   HDRS
889     ModfTest.h
890   DEPENDS
891     libc.include.math
892     libc.src.math.modf
893     libc.src.__support.FPUtil.basic_operations
894     libc.src.__support.FPUtil.nearest_integer_operations
895   # Requires C++ limits.
896   UNIT_TEST_ONLY
899 add_fp_unittest(
900   modff_test
901   SUITE
902     libc-math-unittests
903   SRCS
904     modff_test.cpp
905   HDRS
906     ModfTest.h
907   DEPENDS
908     libc.include.math
909     libc.src.math.modff
910     libc.src.__support.FPUtil.basic_operations
911     libc.src.__support.FPUtil.nearest_integer_operations
912   # Requires C++ limits.
913   UNIT_TEST_ONLY
916 add_fp_unittest(
917   modfl_test
918   SUITE
919     libc-math-unittests
920   SRCS
921     modfl_test.cpp
922   HDRS
923     ModfTest.h
924   DEPENDS
925     libc.include.math
926     libc.src.math.modfl
927     libc.src.__support.FPUtil.basic_operations
928     libc.src.__support.FPUtil.nearest_integer_operations
931 add_fp_unittest(
932   fdimf_test
933   SUITE
934     libc-math-unittests
935   SRCS
936     fdimf_test.cpp
937   HDRS
938     FDimTest.h
939   DEPENDS
940     libc.include.math
941     libc.src.math.fdimf
942     libc.src.__support.FPUtil.basic_operations
943     libc.src.__support.FPUtil.fp_bits
946 add_fp_unittest(
947   fdim_test
948   SUITE
949     libc-math-unittests
950   SRCS
951     fdim_test.cpp
952   HDRS
953     FDimTest.h
954   DEPENDS
955     libc.include.math
956     libc.src.math.fdim
957     libc.src.__support.FPUtil.basic_operations
958     libc.src.__support.FPUtil.fp_bits
961 add_fp_unittest(
962   fdiml_test
963   SUITE
964     libc-math-unittests
965   SRCS
966     fdiml_test.cpp
967   HDRS
968     FDimTest.h
969   DEPENDS
970     libc.include.math
971     libc.src.math.fdiml
972     libc.src.__support.FPUtil.basic_operations
973     libc.src.__support.FPUtil.fp_bits
976 # FIXME: These tests are currently broken on the GPU.
977 if(NOT LIBC_TARGET_ARCHITECTURE_IS_GPU)
978   add_fp_unittest(
979     fminf_test
980     SUITE
981       libc-math-unittests
982     SRCS
983       fminf_test.cpp
984     HDRS
985       FMinTest.h
986     DEPENDS
987       libc.include.math
988       libc.src.math.fminf
989       libc.src.__support.FPUtil.fp_bits
990   )
992   add_fp_unittest(
993     fmin_test
994     SUITE
995       libc-math-unittests
996     SRCS
997       fmin_test.cpp
998     HDRS
999       FMinTest.h
1000     DEPENDS
1001       libc.include.math
1002       libc.src.math.fmin
1003       libc.src.__support.FPUtil.fp_bits
1004   )
1006   add_fp_unittest(
1007     fminl_test
1008     SUITE
1009       libc-math-unittests
1010     SRCS
1011       fminl_test.cpp
1012     HDRS
1013       FMinTest.h
1014     DEPENDS
1015       libc.include.math
1016       libc.src.math.fminl
1017       libc.src.__support.FPUtil.fp_bits
1018   )
1020   add_fp_unittest(
1021     fmaxf_test
1022     SUITE
1023       libc-math-unittests
1024     SRCS
1025       fmaxf_test.cpp
1026     HDRS
1027       FMaxTest.h
1028     DEPENDS
1029       libc.include.math
1030       libc.src.math.fmaxf
1031       libc.src.__support.FPUtil.fp_bits
1032   )
1034   add_fp_unittest(
1035     fmax_test
1036     SUITE
1037       libc-math-unittests
1038     SRCS
1039       fmax_test.cpp
1040     HDRS
1041       FMaxTest.h
1042     DEPENDS
1043       libc.include.math
1044       libc.src.math.fmax
1045       libc.src.__support.FPUtil.fp_bits
1046   )
1048   add_fp_unittest(
1049     fmaxl_test
1050     SUITE
1051       libc-math-unittests
1052     SRCS
1053       fmaxl_test.cpp
1054     HDRS
1055       FMaxTest.h
1056     DEPENDS
1057       libc.include.math
1058       libc.src.math.fmaxl
1059       libc.src.__support.FPUtil.fp_bits
1060   )
1061 endif()
1063 add_fp_unittest(
1064   sqrtf_test
1065   NEED_MPFR
1066   SUITE
1067     libc-math-unittests
1068   SRCS
1069     sqrtf_test.cpp
1070   DEPENDS
1071     libc.include.math
1072     libc.src.math.sqrtf
1073     libc.src.__support.FPUtil.fp_bits
1076 add_fp_unittest(
1077   sqrt_test
1078   NEED_MPFR
1079   SUITE
1080     libc-math-unittests
1081   SRCS
1082     sqrt_test.cpp
1083   DEPENDS
1084     libc.include.math
1085     libc.src.math.sqrt
1086     libc.src.__support.FPUtil.fp_bits
1089 add_fp_unittest(
1090   sqrtl_test
1091   NEED_MPFR
1092   SUITE
1093     libc-math-unittests
1094   SRCS
1095     sqrtl_test.cpp
1096   DEPENDS
1097     libc.include.math
1098     libc.src.math.sqrtl
1099     libc.src.__support.FPUtil.fp_bits
1102 add_fp_unittest(
1103   generic_sqrtf_test
1104   NEED_MPFR
1105   SUITE
1106     libc-math-unittests
1107   SRCS
1108     generic_sqrtf_test.cpp
1109   DEPENDS
1110     libc.src.math.sqrtf
1111     libc.src.__support.FPUtil.fp_bits
1112     libc.src.__support.FPUtil.generic.sqrt
1113   COMPILE_OPTIONS
1114     -O3
1117 add_fp_unittest(
1118   generic_sqrt_test
1119   NEED_MPFR
1120   SUITE
1121     libc-math-unittests
1122   SRCS
1123     generic_sqrt_test.cpp
1124   DEPENDS
1125     libc.src.math.sqrt
1126     libc.src.__support.FPUtil.fp_bits
1127     libc.src.__support.FPUtil.generic.sqrt
1128   COMPILE_OPTIONS
1129     -O3
1132 add_fp_unittest(
1133   generic_sqrtl_test
1134   NEED_MPFR
1135   SUITE
1136     libc-math-unittests
1137   SRCS
1138     generic_sqrtl_test.cpp
1139   DEPENDS
1140     libc.src.math.sqrtl
1141     libc.src.__support.FPUtil.fp_bits
1142     libc.src.__support.FPUtil.generic.sqrt
1143   COMPILE_OPTIONS
1144     -O3
1147 add_fp_unittest(
1148   remquof_test
1149   NEED_MPFR
1150   SUITE
1151     libc-math-unittests
1152   SRCS
1153     remquof_test.cpp
1154   HDRS
1155     RemQuoTest.h
1156   DEPENDS
1157     libc.include.math
1158     libc.src.math.remquof
1159     libc.src.__support.FPUtil.basic_operations
1160     libc.src.__support.FPUtil.fp_bits
1163 add_fp_unittest(
1164   remquo_test
1165   NEED_MPFR
1166   SUITE
1167     libc-math-unittests
1168   SRCS
1169     remquo_test.cpp
1170   HDRS
1171     RemQuoTest.h
1172   DEPENDS
1173     libc.include.math
1174     libc.src.math.remquo
1175     libc.src.__support.FPUtil.basic_operations
1176     libc.src.__support.FPUtil.fp_bits
1179 add_fp_unittest(
1180   remquol_test
1181   NEED_MPFR
1182   SUITE
1183     libc-math-unittests
1184   SRCS
1185     remquol_test.cpp
1186   HDRS
1187     RemQuoTest.h
1188   DEPENDS
1189     libc.include.math
1190     libc.src.math.remquol
1191     libc.src.__support.FPUtil.basic_operations
1192     libc.src.__support.FPUtil.fp_bits
1195 add_fp_unittest(
1196   hypotf_test
1197   NEED_MPFR
1198   SUITE
1199     libc-math-unittests
1200   SRCS
1201     hypotf_test.cpp
1202   DEPENDS
1203     libc.include.math
1204     libc.src.math.hypotf
1205     libc.src.__support.FPUtil.fp_bits
1208 add_fp_unittest(
1209   hypot_test
1210   NEED_MPFR
1211   SUITE
1212     libc-math-unittests
1213   SRCS
1214     hypot_test.cpp
1215   DEPENDS
1216     libc.include.math
1217     libc.src.math.hypot
1218     libc.src.__support.FPUtil.fp_bits
1221 # FIXME: These tests are currently spurious for NVPTX.
1222 if(NOT LIBC_GPU_TARGET_ARCHITECTURE_IS_NVPTX)
1223   add_fp_unittest(
1224     nextafter_test
1225     SUITE
1226       libc-math-unittests
1227     SRCS
1228       nextafter_test.cpp
1229     HDRS
1230       NextAfterTest.h
1231     DEPENDS
1232       libc.include.math
1233       libc.src.math.nextafter
1234       libc.src.__support.FPUtil.basic_operations
1235       libc.src.__support.FPUtil.fp_bits
1236   )
1238   add_fp_unittest(
1239     nextafterf_test
1240     SUITE
1241       libc-math-unittests
1242     SRCS
1243       nextafterf_test.cpp
1244     HDRS
1245       NextAfterTest.h
1246     DEPENDS
1247       libc.include.math
1248       libc.src.math.nextafterf
1249       libc.src.__support.FPUtil.basic_operations
1250       libc.src.__support.FPUtil.fp_bits
1251   )
1252 endif()
1254 add_fp_unittest(
1255   nextafterl_test
1256   SUITE
1257     libc-math-unittests
1258   SRCS
1259     nextafterl_test.cpp
1260   HDRS
1261     NextAfterTest.h
1262   DEPENDS
1263     libc.include.math
1264     libc.src.math.nextafterl
1265     libc.src.__support.FPUtil.basic_operations
1266     libc.src.__support.FPUtil.fp_bits
1269 # TODO(lntue): The current implementation of fputil::general::fma<float> is only
1270 # correctly rounded for the default rounding mode round-to-nearest tie-to-even.
1271 add_fp_unittest(
1272   fmaf_test
1273   NEED_MPFR
1274   SUITE
1275     libc-math-unittests
1276   SRCS
1277     fmaf_test.cpp
1278   DEPENDS
1279     libc.include.math
1280     libc.src.math.fmaf
1281     libc.src.__support.FPUtil.fp_bits
1282   FLAGS
1283     FMA_OPT__ONLY
1286 add_fp_unittest(
1287   fma_test
1288   NEED_MPFR
1289   SUITE
1290     libc-math-unittests
1291   SRCS
1292     fma_test.cpp
1293   DEPENDS
1294     libc.include.math
1295     libc.src.math.fma
1296     libc.src.__support.FPUtil.fp_bits
1299 add_fp_unittest(
1300   tan_test
1301   NEED_MPFR
1302   SUITE
1303     libc-math-unittests
1304   SRCS
1305     tan_test.cpp
1306   DEPENDS
1307     libc.src.math.tan
1308     libc.src.__support.FPUtil.fp_bits
1311 add_fp_unittest(
1312   expm1f_test
1313   NEED_MPFR
1314   SUITE
1315     libc-math-unittests
1316   SRCS
1317     expm1f_test.cpp
1318   DEPENDS
1319     libc.src.errno.errno
1320     libc.include.math
1321     libc.src.math.expm1f
1322     libc.src.__support.FPUtil.fp_bits
1325 add_fp_unittest(
1326  expm1_test
1327  NEED_MPFR
1328  SUITE
1329    libc-math-unittests
1330  SRCS
1331    expm1_test.cpp
1332  DEPENDS
1333    libc.src.errno.errno
1334    libc.include.math
1335    libc.src.math.expm1
1336    libc.src.__support.FPUtil.fp_bits
1339 add_fp_unittest(
1340  log_test
1341  NEED_MPFR
1342  SUITE
1343    libc-math-unittests
1344  SRCS
1345    log_test.cpp
1346  DEPENDS
1347    libc.src.errno.errno
1348    libc.include.math
1349    libc.src.math.log
1350    libc.src.__support.FPUtil.fp_bits
1353 add_fp_unittest(
1354   logf_test
1355   NEED_MPFR
1356   SUITE
1357     libc-math-unittests
1358   SRCS
1359     logf_test.cpp
1360   DEPENDS
1361     libc.src.errno.errno
1362     libc.include.math
1363     libc.src.math.logf
1364     libc.src.__support.FPUtil.fp_bits
1367 add_fp_unittest(
1368 log2_test
1369  NEED_MPFR
1370  SUITE
1371    libc-math-unittests
1372  SRCS
1373    log2_test.cpp
1374  DEPENDS
1375    libc.src.errno.errno
1376    libc.include.math
1377    libc.src.math.log2
1378    libc.src.__support.FPUtil.fp_bits
1381 add_fp_unittest(
1382   log2f_test
1383   NEED_MPFR
1384   SUITE
1385     libc-math-unittests
1386   SRCS
1387     log2f_test.cpp
1388   DEPENDS
1389     libc.src.errno.errno
1390     libc.include.math
1391     libc.src.math.log2f
1392     libc.src.__support.FPUtil.fp_bits
1395 add_fp_unittest(
1396  log10_test
1397  NEED_MPFR
1398  SUITE
1399    libc-math-unittests
1400  SRCS
1401    log10_test.cpp
1402  DEPENDS
1403    libc.src.errno.errno
1404    libc.include.math
1405    libc.src.math.log10
1406    libc.src.__support.FPUtil.fp_bits
1409 add_fp_unittest(
1410   log10f_test
1411   NEED_MPFR
1412   SUITE
1413     libc-math-unittests
1414   SRCS
1415     log10f_test.cpp
1416   DEPENDS
1417     libc.src.errno.errno
1418     libc.include.math
1419     libc.src.math.log10f
1420     libc.src.__support.FPUtil.fp_bits
1423 add_fp_unittest(
1424 log1p_test
1425  NEED_MPFR
1426  SUITE
1427    libc-math-unittests
1428  SRCS
1429    log1p_test.cpp
1430  DEPENDS
1431    libc.src.errno.errno
1432    libc.include.math
1433    libc.src.math.log1p
1434    libc.src.__support.FPUtil.fp_bits
1437 add_fp_unittest(
1438   log1pf_test
1439   NEED_MPFR
1440   SUITE
1441     libc-math-unittests
1442   SRCS
1443     log1pf_test.cpp
1444   DEPENDS
1445     libc.src.errno.errno
1446     libc.include.math
1447     libc.src.math.log1pf
1448     libc.src.__support.FPUtil.fp_bits
1451 add_fp_unittest(
1452   fmodf_test
1453   SUITE
1454     libc-math-unittests
1455   SRCS
1456     fmodf_test.cpp
1457   HDRS
1458     FModTest.h
1459   DEPENDS
1460     libc.include.math
1461     libc.src.errno.errno
1462     libc.src.math.fmodf
1463     libc.src.__support.FPUtil.basic_operations
1464     libc.src.__support.FPUtil.nearest_integer_operations
1465   # Requires C++ limits.
1466   UNIT_TEST_ONLY
1469 add_fp_unittest(
1470   fmod_test
1471   SUITE
1472     libc-math-unittests
1473   SRCS
1474     fmod_test.cpp
1475   HDRS
1476     FModTest.h
1477   DEPENDS
1478     libc.include.math
1479     libc.src.errno.errno
1480     libc.src.math.fmod
1481     libc.src.__support.FPUtil.basic_operations
1482     libc.src.__support.FPUtil.nearest_integer_operations
1483   # Requires C++ limits.
1484   UNIT_TEST_ONLY
1487 add_fp_unittest(
1488   explogxf_test
1489   NEED_MPFR
1490   SUITE
1491     libc-math-unittests
1492   HDRS
1493     in_float_range_test_helper.h
1494   SRCS
1495     explogxf_test.cpp
1496   DEPENDS
1497     libc.include.math
1498     libc.src.math.generic.explogxf
1499     libc.src.__support.FPUtil.fp_bits
1502 add_fp_unittest(
1503   coshf_test
1504   NEED_MPFR
1505   SUITE
1506     libc-math-unittests
1507   SRCS
1508     coshf_test.cpp
1509   HDRS
1510     sdcomp26094.h
1511   DEPENDS
1512     libc.src.errno.errno
1513     libc.src.math.coshf
1514     libc.src.__support.CPP.array
1515     libc.src.__support.FPUtil.fp_bits
1518 add_fp_unittest(
1519   sinhf_test
1520   NEED_MPFR
1521   SUITE
1522     libc-math-unittests
1523   SRCS
1524     sinhf_test.cpp
1525   HDRS
1526     sdcomp26094.h
1527   DEPENDS
1528     libc.src.errno.errno
1529     libc.src.math.sinhf
1530     libc.src.__support.CPP.array
1531     libc.src.__support.FPUtil.fp_bits
1534 add_fp_unittest(
1535   tanhf_test
1536   NEED_MPFR
1537   SUITE
1538     libc-math-unittests
1539   SRCS
1540     tanhf_test.cpp
1541   DEPENDS
1542     libc.src.math.tanhf
1543     libc.src.__support.FPUtil.fp_bits
1546 add_fp_unittest(
1547   atanhf_test
1548   NEED_MPFR
1549   SUITE
1550     libc-math-unittests
1551   SRCS
1552     atanhf_test.cpp
1553   DEPENDS
1554     libc.src.errno.errno
1555     libc.src.math.atanhf
1556     libc.src.__support.FPUtil.fp_bits
1559 add_fp_unittest(
1560   asinhf_test
1561   NEED_MPFR
1562   SUITE
1563     libc-math-unittests
1564   SRCS
1565     asinhf_test.cpp
1566   DEPENDS
1567     libc.src.errno.errno
1568     libc.src.math.asinhf
1569     libc.src.__support.FPUtil.fp_bits
1572 add_fp_unittest(
1573   acoshf_test
1574   NEED_MPFR
1575   SUITE
1576     libc-math-unittests
1577   SRCS
1578     acoshf_test.cpp
1579   DEPENDS
1580     libc.src.errno.errno
1581     libc.src.math.acoshf
1582     libc.src.__support.FPUtil.fp_bits
1585 add_fp_unittest(
1586   asinf_test
1587   NEED_MPFR
1588   SUITE
1589     libc-math-unittests
1590   SRCS
1591     asinf_test.cpp
1592   DEPENDS
1593     libc.src.errno.errno
1594     libc.src.math.asinf
1595     libc.src.__support.FPUtil.fp_bits
1598 add_fp_unittest(
1599   acosf_test
1600   NEED_MPFR
1601   SUITE
1602     libc-math-unittests
1603   SRCS
1604     acosf_test.cpp
1605   DEPENDS
1606     libc.src.errno.errno
1607     libc.src.math.acosf
1608     libc.src.__support.FPUtil.fp_bits
1611 add_fp_unittest(
1612   atanf_test
1613   NEED_MPFR
1614   SUITE
1615     libc-math-unittests
1616   SRCS
1617     atanf_test.cpp
1618   DEPENDS
1619     libc.src.errno.errno
1620     libc.src.math.atanf
1621     libc.src.__support.FPUtil.fp_bits
1624 add_fp_unittest(
1625   inv_trigf_utils_test
1626   NEED_MPFR
1627   SUITE
1628     libc-math-unittests
1629   HDRS
1630     in_float_range_test_helper.h
1631   SRCS
1632     inv_trigf_utils_test.cpp
1633   DEPENDS
1634     libc.src.math.generic.inv_trigf_utils
1635     libc.src.__support.FPUtil.fp_bits
1638 add_fp_unittest(
1639   scalbn_test
1640   NEED_MPFR
1641   SUITE
1642     libc-math-unittests
1643   SRCS
1644     scalbn_test.cpp
1645   HDRS
1646     ScalbnTest.h
1647   DEPENDS
1648     libc.include.math
1649     libc.src.math.scalbn
1650     libc.src.__support.FPUtil.fp_bits
1651     libc.src.__support.FPUtil.normal_float
1654 add_fp_unittest(
1655   scalbnf_test
1656   NEED_MPFR
1657   SUITE
1658     libc-math-unittests
1659   SRCS
1660     scalbnf_test.cpp
1661   HDRS
1662     ScalbnTest.h
1663   DEPENDS
1664     libc.include.math
1665     libc.src.math.scalbnf
1666     libc.src.__support.FPUtil.fp_bits
1667     libc.src.__support.FPUtil.normal_float
1670 add_fp_unittest(
1671   scalbnl_test
1672   NEED_MPFR
1673   SUITE
1674     libc-math-unittests
1675   SRCS
1676     scalbnl_test.cpp
1677   HDRS
1678     ScalbnTest.h
1679   DEPENDS
1680     libc.include.math
1681     libc.src.math.scalbnl
1682     libc.src.__support.FPUtil.fp_bits
1683     libc.src.__support.FPUtil.normal_float
1686 add_fp_unittest(
1687   erff_test
1688   NEED_MPFR
1689   SUITE
1690     libc-math-unittests
1691   SRCS
1692     erff_test.cpp
1693   DEPENDS
1694     libc.include.math
1695     libc.src.math.erff
1696     libc.src.__support.FPUtil.fp_bits
1699 add_fp_unittest(
1700   powf_test
1701   NEED_MPFR
1702   SUITE
1703     libc-math-unittests
1704   SRCS
1705     powf_test.cpp
1706   DEPENDS
1707     libc.include.math
1708     libc.src.math.powf
1709     libc.src.__support.FPUtil.fp_bits
1712 add_subdirectory(generic)
1713 add_subdirectory(smoke)
1715 if(NOT LLVM_LIBC_FULL_BUILD)
1716   add_subdirectory(exhaustive)
1717   add_subdirectory(differential_testing)
1718 endif()