xref: /freebsd/contrib/arm-optimized-routines/pl/math/poly_sve_f32.h (revision 5a02ffc32e777041dd2dad4e651ed2a0865a0a5d)
1*5a02ffc3SAndrew Turner /*
2*5a02ffc3SAndrew Turner  * Helpers for evaluating polynomials on single-precision SVE input, using
3*5a02ffc3SAndrew Turner  * various schemes.
4*5a02ffc3SAndrew Turner  *
5*5a02ffc3SAndrew Turner  * Copyright (c) 2023, Arm Limited.
6*5a02ffc3SAndrew Turner  * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
7*5a02ffc3SAndrew Turner  */
8*5a02ffc3SAndrew Turner 
9*5a02ffc3SAndrew Turner #ifndef PL_MATH_POLY_SVE_F32_H
10*5a02ffc3SAndrew Turner #define PL_MATH_POLY_SVE_F32_H
11*5a02ffc3SAndrew Turner 
12*5a02ffc3SAndrew Turner #include <arm_sve.h>
13*5a02ffc3SAndrew Turner 
14*5a02ffc3SAndrew Turner /* Wrap SVE f32 helpers: evaluation of some scheme/order has form:
15*5a02ffc3SAndrew Turner    sv_[scheme]_[order]_f32_x.  */
16*5a02ffc3SAndrew Turner #define VTYPE svfloat32_t
17*5a02ffc3SAndrew Turner #define STYPE float
18*5a02ffc3SAndrew Turner #define VWRAP(f) sv_##f##_f32_x
19*5a02ffc3SAndrew Turner #define DUP svdup_f32
20*5a02ffc3SAndrew Turner #include "poly_sve_generic.h"
21*5a02ffc3SAndrew Turner #undef DUP
22*5a02ffc3SAndrew Turner #undef VWRAP
23*5a02ffc3SAndrew Turner #undef STYPE
24*5a02ffc3SAndrew Turner #undef VTYPE
25*5a02ffc3SAndrew Turner 
26*5a02ffc3SAndrew Turner #endif
27