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