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