xref: /freebsd/contrib/arm-optimized-routines/pl/math/poly_advsimd_f32.h (revision a8089ea5aee578e08acab2438e82fc9a9ae50ed8)
1 /*
2  * Helpers for evaluating polynomials on single-precision AdvSIMD input, using
3  * various schemes.
4  *
5  * Copyright (c) 2023, Arm Limited.
6  * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
7  */
8 
9 #ifndef PL_MATH_POLY_ADVSIMD_F32_H
10 #define PL_MATH_POLY_ADVSIMD_F32_H
11 
12 #include <arm_neon.h>
13 
14 /* Wrap AdvSIMD f32 helpers: evaluation of some scheme/order has form:
15    v_[scheme]_[order]_f32.  */
16 #define VTYPE float32x4_t
17 #define FMA(x, y, z) vfmaq_f32 (z, x, y)
18 #define VWRAP(f) v_##f##_f32
19 #include "poly_generic.h"
20 #undef VWRAP
21 #undef FMA
22 #undef VTYPE
23 
24 #endif
25