xref: /freebsd-src/contrib/arm-optimized-routines/math/test/mathbench_funcs.h (revision 072a4ba82a01476eaee33781ccd241033eefcf0b)
1*072a4ba8SAndrew Turner /*
2*072a4ba8SAndrew Turner  * Function entries for mathbench.
3*072a4ba8SAndrew Turner  *
4*072a4ba8SAndrew Turner  * Copyright (c) 2022, Arm Limited.
5*072a4ba8SAndrew Turner  * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6*072a4ba8SAndrew Turner  */
7*072a4ba8SAndrew Turner D (exp, -9.9, 9.9)
8*072a4ba8SAndrew Turner D (exp, 0.5, 1.0)
9*072a4ba8SAndrew Turner D (exp2, -9.9, 9.9)
10*072a4ba8SAndrew Turner D (log, 0.01, 11.1)
11*072a4ba8SAndrew Turner D (log, 0.999, 1.001)
12*072a4ba8SAndrew Turner D (log2, 0.01, 11.1)
13*072a4ba8SAndrew Turner D (log2, 0.999, 1.001)
14*072a4ba8SAndrew Turner {"pow", 'd', 0, 0.01, 11.1, {.d = xypow}},
15*072a4ba8SAndrew Turner D (xpow, 0.01, 11.1)
16*072a4ba8SAndrew Turner D (ypow, -9.9, 9.9)
17*072a4ba8SAndrew Turner D (erf, -6.0, 6.0)
18*072a4ba8SAndrew Turner 
19*072a4ba8SAndrew Turner F (expf, -9.9, 9.9)
20*072a4ba8SAndrew Turner F (exp2f, -9.9, 9.9)
21*072a4ba8SAndrew Turner F (logf, 0.01, 11.1)
22*072a4ba8SAndrew Turner F (log2f, 0.01, 11.1)
23*072a4ba8SAndrew Turner {"powf", 'f', 0, 0.01, 11.1, {.f = xypowf}},
24*072a4ba8SAndrew Turner F (xpowf, 0.01, 11.1)
25*072a4ba8SAndrew Turner F (ypowf, -9.9, 9.9)
26*072a4ba8SAndrew Turner {"sincosf", 'f', 0, 0.1, 0.7, {.f = sincosf_wrap}},
27*072a4ba8SAndrew Turner {"sincosf", 'f', 0, 0.8, 3.1, {.f = sincosf_wrap}},
28*072a4ba8SAndrew Turner {"sincosf", 'f', 0, -3.1, 3.1, {.f = sincosf_wrap}},
29*072a4ba8SAndrew Turner {"sincosf", 'f', 0, 3.3, 33.3, {.f = sincosf_wrap}},
30*072a4ba8SAndrew Turner {"sincosf", 'f', 0, 100, 1000, {.f = sincosf_wrap}},
31*072a4ba8SAndrew Turner {"sincosf", 'f', 0, 1e6, 1e32, {.f = sincosf_wrap}},
32*072a4ba8SAndrew Turner F (sinf, 0.1, 0.7)
33*072a4ba8SAndrew Turner F (sinf, 0.8, 3.1)
34*072a4ba8SAndrew Turner F (sinf, -3.1, 3.1)
35*072a4ba8SAndrew Turner F (sinf, 3.3, 33.3)
36*072a4ba8SAndrew Turner F (sinf, 100, 1000)
37*072a4ba8SAndrew Turner F (sinf, 1e6, 1e32)
38*072a4ba8SAndrew Turner F (cosf, 0.1, 0.7)
39*072a4ba8SAndrew Turner F (cosf, 0.8, 3.1)
40*072a4ba8SAndrew Turner F (cosf, -3.1, 3.1)
41*072a4ba8SAndrew Turner F (cosf, 3.3, 33.3)
42*072a4ba8SAndrew Turner F (cosf, 100, 1000)
43*072a4ba8SAndrew Turner F (cosf, 1e6, 1e32)
44*072a4ba8SAndrew Turner F (erff, -4.0, 4.0)
45*072a4ba8SAndrew Turner #if WANT_VMATH
46*072a4ba8SAndrew Turner D (__s_sin, -3.1, 3.1)
47*072a4ba8SAndrew Turner D (__s_cos, -3.1, 3.1)
48*072a4ba8SAndrew Turner D (__s_exp, -9.9, 9.9)
49*072a4ba8SAndrew Turner D (__s_log, 0.01, 11.1)
50*072a4ba8SAndrew Turner {"__s_pow", 'd', 0, 0.01, 11.1, {.d = xy__s_pow}},
51*072a4ba8SAndrew Turner F (__s_expf, -9.9, 9.9)
52*072a4ba8SAndrew Turner F (__s_expf_1u, -9.9, 9.9)
53*072a4ba8SAndrew Turner F (__s_exp2f, -9.9, 9.9)
54*072a4ba8SAndrew Turner F (__s_exp2f_1u, -9.9, 9.9)
55*072a4ba8SAndrew Turner F (__s_logf, 0.01, 11.1)
56*072a4ba8SAndrew Turner {"__s_powf", 'f', 0, 0.01, 11.1, {.f = xy__s_powf}},
57*072a4ba8SAndrew Turner F (__s_sinf, -3.1, 3.1)
58*072a4ba8SAndrew Turner F (__s_cosf, -3.1, 3.1)
59*072a4ba8SAndrew Turner #if __aarch64__
60*072a4ba8SAndrew Turner VD (__v_sin, -3.1, 3.1)
61*072a4ba8SAndrew Turner VD (__v_cos, -3.1, 3.1)
62*072a4ba8SAndrew Turner VD (__v_exp, -9.9, 9.9)
63*072a4ba8SAndrew Turner VD (__v_log, 0.01, 11.1)
64*072a4ba8SAndrew Turner {"__v_pow", 'd', 'v', 0.01, 11.1, {.vd = xy__v_pow}},
65*072a4ba8SAndrew Turner VF (__v_expf, -9.9, 9.9)
66*072a4ba8SAndrew Turner VF (__v_expf_1u, -9.9, 9.9)
67*072a4ba8SAndrew Turner VF (__v_exp2f, -9.9, 9.9)
68*072a4ba8SAndrew Turner VF (__v_exp2f_1u, -9.9, 9.9)
69*072a4ba8SAndrew Turner VF (__v_logf, 0.01, 11.1)
70*072a4ba8SAndrew Turner {"__v_powf", 'f', 'v', 0.01, 11.1, {.vf = xy__v_powf}},
71*072a4ba8SAndrew Turner VF (__v_sinf, -3.1, 3.1)
72*072a4ba8SAndrew Turner VF (__v_cosf, -3.1, 3.1)
73*072a4ba8SAndrew Turner #ifdef __vpcs
74*072a4ba8SAndrew Turner VND (__vn_exp, -9.9, 9.9)
75*072a4ba8SAndrew Turner VND (_ZGVnN2v_exp, -9.9, 9.9)
76*072a4ba8SAndrew Turner VND (__vn_log, 0.01, 11.1)
77*072a4ba8SAndrew Turner VND (_ZGVnN2v_log, 0.01, 11.1)
78*072a4ba8SAndrew Turner {"__vn_pow", 'd', 'n', 0.01, 11.1, {.vnd = xy__vn_pow}},
79*072a4ba8SAndrew Turner {"_ZGVnN2vv_pow", 'd', 'n', 0.01, 11.1, {.vnd = xy_Z_pow}},
80*072a4ba8SAndrew Turner VND (__vn_sin, -3.1, 3.1)
81*072a4ba8SAndrew Turner VND (_ZGVnN2v_sin, -3.1, 3.1)
82*072a4ba8SAndrew Turner VND (__vn_cos, -3.1, 3.1)
83*072a4ba8SAndrew Turner VND (_ZGVnN2v_cos, -3.1, 3.1)
84*072a4ba8SAndrew Turner VNF (__vn_expf, -9.9, 9.9)
85*072a4ba8SAndrew Turner VNF (_ZGVnN4v_expf, -9.9, 9.9)
86*072a4ba8SAndrew Turner VNF (__vn_expf_1u, -9.9, 9.9)
87*072a4ba8SAndrew Turner VNF (__vn_exp2f, -9.9, 9.9)
88*072a4ba8SAndrew Turner VNF (_ZGVnN4v_exp2f, -9.9, 9.9)
89*072a4ba8SAndrew Turner VNF (__vn_exp2f_1u, -9.9, 9.9)
90*072a4ba8SAndrew Turner VNF (__vn_logf, 0.01, 11.1)
91*072a4ba8SAndrew Turner VNF (_ZGVnN4v_logf, 0.01, 11.1)
92*072a4ba8SAndrew Turner {"__vn_powf", 'f', 'n', 0.01, 11.1, {.vnf = xy__vn_powf}},
93*072a4ba8SAndrew Turner {"_ZGVnN4vv_powf", 'f', 'n', 0.01, 11.1, {.vnf = xy_Z_powf}},
94*072a4ba8SAndrew Turner VNF (__vn_sinf, -3.1, 3.1)
95*072a4ba8SAndrew Turner VNF (_ZGVnN4v_sinf, -3.1, 3.1)
96*072a4ba8SAndrew Turner VNF (__vn_cosf, -3.1, 3.1)
97*072a4ba8SAndrew Turner VNF (_ZGVnN4v_cosf, -3.1, 3.1)
98*072a4ba8SAndrew Turner #endif
99*072a4ba8SAndrew Turner #endif
100*072a4ba8SAndrew Turner #endif
101