xref: /freebsd/contrib/arm-optimized-routines/pl/math/poly_advsimd_f64.h (revision 5a02ffc32e777041dd2dad4e651ed2a0865a0a5d)
1 /*
2  * Helpers for evaluating polynomials on double-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_F64_H
10 #define PL_MATH_POLY_ADVSIMD_F64_H
11 
12 #include <arm_neon.h>
13 
14 /* Wrap AdvSIMD f64 helpers: evaluation of some scheme/order has form:
15    v_[scheme]_[order]_f64.  */
16 #define VTYPE float64x2_t
17 #define FMA(x, y, z) vfmaq_f64 (z, x, y)
18 #define VWRAP(f) v_##f##_f64
19 #include "poly_generic.h"
20 #undef VWRAP
21 #undef FMA
22 #undef VTYPE
23 
24 #endif
25