xref: /freebsd/contrib/arm-optimized-routines/pl/math/test/ulp_funcs.h (revision 072a4ba82a01476eaee33781ccd241033eefcf0b)
1*072a4ba8SAndrew Turner /*
2*072a4ba8SAndrew Turner  * Function entries for ulp.
3*072a4ba8SAndrew Turner  *
4*072a4ba8SAndrew Turner  * Copyright (c) 2022-2023, Arm Limited.
5*072a4ba8SAndrew Turner  * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6*072a4ba8SAndrew Turner  */
7*072a4ba8SAndrew Turner 
8*072a4ba8SAndrew Turner #ifdef __vpcs
9*072a4ba8SAndrew Turner 
10*072a4ba8SAndrew Turner #define _ZVF1(f) SF1 (f) VF1 (f) ZVNF1 (f)
11*072a4ba8SAndrew Turner #define _ZVD1(f) SD1 (f) VD1 (f) ZVND1 (f)
12*072a4ba8SAndrew Turner #define _ZVF2(f) SF2 (f) VF2 (f) ZVNF2 (f)
13*072a4ba8SAndrew Turner #define _ZVD2(f) SD2 (f) VD2 (f) ZVND2 (f)
14*072a4ba8SAndrew Turner 
15*072a4ba8SAndrew Turner #elif __aarch64
16*072a4ba8SAndrew Turner 
17*072a4ba8SAndrew Turner #define _ZVF1(f) SF1 (f) VF1 (f)
18*072a4ba8SAndrew Turner #define _ZVD1(f) SD1 (f) VD1 (f)
19*072a4ba8SAndrew Turner #define _ZVF2(f) SF2 (f) VF2 (f)
20*072a4ba8SAndrew Turner #define _ZVD2(f) SD2 (f) VD2 (f)
21*072a4ba8SAndrew Turner 
22*072a4ba8SAndrew Turner #elif WANT_VMATH
23*072a4ba8SAndrew Turner 
24*072a4ba8SAndrew Turner #define _ZVF1(f) SF1 (f)
25*072a4ba8SAndrew Turner #define _ZVD1(f) SD1 (f)
26*072a4ba8SAndrew Turner #define _ZVF2(f) SF2 (f)
27*072a4ba8SAndrew Turner #define _ZVD2(f) SD2 (f)
28*072a4ba8SAndrew Turner 
29*072a4ba8SAndrew Turner #else
30*072a4ba8SAndrew Turner 
31*072a4ba8SAndrew Turner #define _ZVF1(f)
32*072a4ba8SAndrew Turner #define _ZVD1(f)
33*072a4ba8SAndrew Turner #define _ZVF2(f)
34*072a4ba8SAndrew Turner #define _ZVD2(f)
35*072a4ba8SAndrew Turner 
36*072a4ba8SAndrew Turner #endif
37*072a4ba8SAndrew Turner 
38*072a4ba8SAndrew Turner #if WANT_SVE_MATH
39*072a4ba8SAndrew Turner 
40*072a4ba8SAndrew Turner #define _ZSVF1(f) SVF1 (f) ZSVF1 (f)
41*072a4ba8SAndrew Turner #define _ZSVF2(f) SVF2 (f) ZSVF2 (f)
42*072a4ba8SAndrew Turner #define _ZSVD1(f) SVD1 (f) ZSVD1 (f)
43*072a4ba8SAndrew Turner #define _ZSVD2(f) SVD2 (f) ZSVD2 (f)
44*072a4ba8SAndrew Turner 
45*072a4ba8SAndrew Turner #else
46*072a4ba8SAndrew Turner 
47*072a4ba8SAndrew Turner #define _ZSVF1(f)
48*072a4ba8SAndrew Turner #define _ZSVF2(f)
49*072a4ba8SAndrew Turner #define _ZSVD1(f)
50*072a4ba8SAndrew Turner #define _ZSVD2(f)
51*072a4ba8SAndrew Turner 
52*072a4ba8SAndrew Turner #endif
53*072a4ba8SAndrew Turner 
54*072a4ba8SAndrew Turner #define _ZSF1(f) F1 (f)
55*072a4ba8SAndrew Turner #define _ZSF2(f) F2 (f)
56*072a4ba8SAndrew Turner #define _ZSD1(f) D1 (f)
57*072a4ba8SAndrew Turner #define _ZSD2(f) D2 (f)
58*072a4ba8SAndrew Turner 
59*072a4ba8SAndrew Turner #include "ulp_funcs_gen.h"
60*072a4ba8SAndrew Turner 
61*072a4ba8SAndrew Turner #if WANT_SVE_MATH
62*072a4ba8SAndrew Turner F (__sv_powi, sv_powi, ref_powi, mpfr_powi, 2, 0, d2, 0)
63*072a4ba8SAndrew Turner F (_ZGVsMxvv_powk, Z_sv_powk, ref_powi, mpfr_powi, 2, 0, d2, 0)
64*072a4ba8SAndrew Turner F (__sv_powif, sv_powif, ref_powif, mpfr_powi, 2, 1, f2, 0)
65*072a4ba8SAndrew Turner F (_ZGVsMxvv_powi, Z_sv_powi, ref_powif, mpfr_powi, 2, 1, f2, 0)
66*072a4ba8SAndrew Turner #endif
67