xref: /freebsd/contrib/arm-optimized-routines/pl/math/test/ulp_funcs.h (revision 5a02ffc32e777041dd2dad4e651ed2a0865a0a5d)
1072a4ba8SAndrew Turner /*
2072a4ba8SAndrew Turner  * Function entries for ulp.
3072a4ba8SAndrew Turner  *
4072a4ba8SAndrew Turner  * Copyright (c) 2022-2023, Arm Limited.
5072a4ba8SAndrew Turner  * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6072a4ba8SAndrew Turner  */
7072a4ba8SAndrew Turner 
8*5a02ffc3SAndrew Turner #if defined(__vpcs) && __aarch64__
9072a4ba8SAndrew Turner 
10*5a02ffc3SAndrew Turner #define _ZVF1(f) ZVF1 (f)
11*5a02ffc3SAndrew Turner #define _ZVD1(f) ZVD1 (f)
12*5a02ffc3SAndrew Turner #define _ZVF2(f) ZVF2 (f)
13*5a02ffc3SAndrew Turner #define _ZVD2(f) ZVD2 (f)
14072a4ba8SAndrew Turner 
15072a4ba8SAndrew Turner #else
16072a4ba8SAndrew Turner 
17072a4ba8SAndrew Turner #define _ZVF1(f)
18072a4ba8SAndrew Turner #define _ZVD1(f)
19072a4ba8SAndrew Turner #define _ZVF2(f)
20072a4ba8SAndrew Turner #define _ZVD2(f)
21072a4ba8SAndrew Turner 
22072a4ba8SAndrew Turner #endif
23072a4ba8SAndrew Turner 
24072a4ba8SAndrew Turner #if WANT_SVE_MATH
25072a4ba8SAndrew Turner 
26*5a02ffc3SAndrew Turner #define _ZSVF1(f) ZSVF1 (f)
27*5a02ffc3SAndrew Turner #define _ZSVF2(f) ZSVF2 (f)
28*5a02ffc3SAndrew Turner #define _ZSVD1(f) ZSVD1 (f)
29*5a02ffc3SAndrew Turner #define _ZSVD2(f) ZSVD2 (f)
30072a4ba8SAndrew Turner 
31072a4ba8SAndrew Turner #else
32072a4ba8SAndrew Turner 
33072a4ba8SAndrew Turner #define _ZSVF1(f)
34072a4ba8SAndrew Turner #define _ZSVF2(f)
35072a4ba8SAndrew Turner #define _ZSVD1(f)
36072a4ba8SAndrew Turner #define _ZSVD2(f)
37072a4ba8SAndrew Turner 
38072a4ba8SAndrew Turner #endif
39072a4ba8SAndrew Turner 
40072a4ba8SAndrew Turner #define _ZSF1(f) F1 (f)
41072a4ba8SAndrew Turner #define _ZSF2(f) F2 (f)
42072a4ba8SAndrew Turner #define _ZSD1(f) D1 (f)
43072a4ba8SAndrew Turner #define _ZSD2(f) D2 (f)
44072a4ba8SAndrew Turner 
45072a4ba8SAndrew Turner #include "ulp_funcs_gen.h"
46072a4ba8SAndrew Turner 
47*5a02ffc3SAndrew Turner F (_ZGVnN4v_sincosf_sin, v_sincosf_sin, sin, mpfr_sin, 1, 1, f1, 0)
48*5a02ffc3SAndrew Turner F (_ZGVnN4v_sincosf_cos, v_sincosf_cos, cos, mpfr_cos, 1, 1, f1, 0)
49*5a02ffc3SAndrew Turner F (_ZGVnN4v_cexpif_sin, v_cexpif_sin, sin, mpfr_sin, 1, 1, f1, 0)
50*5a02ffc3SAndrew Turner F (_ZGVnN4v_cexpif_cos, v_cexpif_cos, cos, mpfr_cos, 1, 1, f1, 0)
51*5a02ffc3SAndrew Turner 
52*5a02ffc3SAndrew Turner F (_ZGVnN2v_sincos_sin, v_sincos_sin, sinl, mpfr_sin, 1, 0, d1, 0)
53*5a02ffc3SAndrew Turner F (_ZGVnN2v_sincos_cos, v_sincos_cos, cosl, mpfr_cos, 1, 0, d1, 0)
54*5a02ffc3SAndrew Turner F (_ZGVnN2v_cexpi_sin, v_cexpi_sin, sinl, mpfr_sin, 1, 0, d1, 0)
55*5a02ffc3SAndrew Turner F (_ZGVnN2v_cexpi_cos, v_cexpi_cos, cosl, mpfr_cos, 1, 0, d1, 0)
56*5a02ffc3SAndrew Turner 
57072a4ba8SAndrew Turner #if WANT_SVE_MATH
58072a4ba8SAndrew Turner F (_ZGVsMxvv_powk, Z_sv_powk, ref_powi, mpfr_powi, 2, 0, d2, 0)
59072a4ba8SAndrew Turner F (_ZGVsMxvv_powi, Z_sv_powi, ref_powif, mpfr_powi, 2, 1, f2, 0)
60*5a02ffc3SAndrew Turner 
61*5a02ffc3SAndrew Turner F (_ZGVsMxv_sincosf_sin, sv_sincosf_sin, sin, mpfr_sin, 1, 1, f1, 0)
62*5a02ffc3SAndrew Turner F (_ZGVsMxv_sincosf_cos, sv_sincosf_cos, cos, mpfr_cos, 1, 1, f1, 0)
63*5a02ffc3SAndrew Turner F (_ZGVsMxv_cexpif_sin, sv_cexpif_sin, sin, mpfr_sin, 1, 1, f1, 0)
64*5a02ffc3SAndrew Turner F (_ZGVsMxv_cexpif_cos, sv_cexpif_cos, cos, mpfr_cos, 1, 1, f1, 0)
65*5a02ffc3SAndrew Turner 
66*5a02ffc3SAndrew Turner F (_ZGVsMxv_sincos_sin, sv_sincos_sin, sinl, mpfr_sin, 1, 0, d1, 0)
67*5a02ffc3SAndrew Turner F (_ZGVsMxv_sincos_cos, sv_sincos_cos, cosl, mpfr_cos, 1, 0, d1, 0)
68*5a02ffc3SAndrew Turner F (_ZGVsMxv_cexpi_sin, sv_cexpi_sin, sinl, mpfr_sin, 1, 0, d1, 0)
69*5a02ffc3SAndrew Turner F (_ZGVsMxv_cexpi_cos, sv_cexpi_cos, cosl, mpfr_cos, 1, 0, d1, 0)
70072a4ba8SAndrew Turner #endif
71