1*412f47f9SXin Li /*
2*412f47f9SXin Li * Function wrappers for mathbench.
3*412f47f9SXin Li *
4*412f47f9SXin Li * Copyright (c) 2022-2024, Arm Limited.
5*412f47f9SXin Li * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6*412f47f9SXin Li */
7*412f47f9SXin Li
8*412f47f9SXin Li #if WANT_SIMD_TESTS && defined(__vpcs)
9*412f47f9SXin Li
10*412f47f9SXin Li __vpcs static v_float
xy_Z_powf(v_float x)11*412f47f9SXin Li xy_Z_powf (v_float x)
12*412f47f9SXin Li {
13*412f47f9SXin Li return _ZGVnN4vv_powf (x, x);
14*412f47f9SXin Li }
15*412f47f9SXin Li
16*412f47f9SXin Li __vpcs static v_float
x_Z_powf(v_float x)17*412f47f9SXin Li x_Z_powf (v_float x)
18*412f47f9SXin Li {
19*412f47f9SXin Li return _ZGVnN4vv_powf (x, v_float_dup (23.4));
20*412f47f9SXin Li }
21*412f47f9SXin Li
22*412f47f9SXin Li __vpcs static v_float
y_Z_powf(v_float x)23*412f47f9SXin Li y_Z_powf (v_float x)
24*412f47f9SXin Li {
25*412f47f9SXin Li return _ZGVnN4vv_powf (v_float_dup (2.34), x);
26*412f47f9SXin Li }
27*412f47f9SXin Li
28*412f47f9SXin Li __vpcs static v_double
xy_Z_pow(v_double x)29*412f47f9SXin Li xy_Z_pow (v_double x)
30*412f47f9SXin Li {
31*412f47f9SXin Li return _ZGVnN2vv_pow (x, x);
32*412f47f9SXin Li }
33*412f47f9SXin Li
34*412f47f9SXin Li #endif
35*412f47f9SXin Li
36*412f47f9SXin Li static double
xypow(double x)37*412f47f9SXin Li xypow (double x)
38*412f47f9SXin Li {
39*412f47f9SXin Li return pow (x, x);
40*412f47f9SXin Li }
41*412f47f9SXin Li
42*412f47f9SXin Li static float
xypowf(float x)43*412f47f9SXin Li xypowf (float x)
44*412f47f9SXin Li {
45*412f47f9SXin Li return powf (x, x);
46*412f47f9SXin Li }
47*412f47f9SXin Li
48*412f47f9SXin Li static double
xpow(double x)49*412f47f9SXin Li xpow (double x)
50*412f47f9SXin Li {
51*412f47f9SXin Li return pow (x, 23.4);
52*412f47f9SXin Li }
53*412f47f9SXin Li
54*412f47f9SXin Li static float
xpowf(float x)55*412f47f9SXin Li xpowf (float x)
56*412f47f9SXin Li {
57*412f47f9SXin Li return powf (x, 23.4f);
58*412f47f9SXin Li }
59*412f47f9SXin Li
60*412f47f9SXin Li static double
ypow(double x)61*412f47f9SXin Li ypow (double x)
62*412f47f9SXin Li {
63*412f47f9SXin Li return pow (2.34, x);
64*412f47f9SXin Li }
65*412f47f9SXin Li
66*412f47f9SXin Li static float
ypowf(float x)67*412f47f9SXin Li ypowf (float x)
68*412f47f9SXin Li {
69*412f47f9SXin Li return powf (2.34f, x);
70*412f47f9SXin Li }
71*412f47f9SXin Li
72*412f47f9SXin Li static float
sincosf_wrap(float x)73*412f47f9SXin Li sincosf_wrap (float x)
74*412f47f9SXin Li {
75*412f47f9SXin Li float s, c;
76*412f47f9SXin Li sincosf (x, &s, &c);
77*412f47f9SXin Li return s + c;
78*412f47f9SXin Li }
79