131914882SAlex Richardson /* 231914882SAlex Richardson * Public API. 331914882SAlex Richardson * 4*f3087befSAndrew Turner * Copyright (c) 2015-2024, Arm Limited. 5072a4ba8SAndrew Turner * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception 631914882SAlex Richardson */ 731914882SAlex Richardson 831914882SAlex Richardson #ifndef _MATHLIB_H 931914882SAlex Richardson #define _MATHLIB_H 1031914882SAlex Richardson 1131914882SAlex Richardson #if __aarch64__ 12*f3087befSAndrew Turner /* Low-accuracy scalar implementations of C23 routines. */ 13*f3087befSAndrew Turner float arm_math_cospif (float); 14*f3087befSAndrew Turner double arm_math_cospi (double); 15*f3087befSAndrew Turner float arm_math_sinpif (float); 16*f3087befSAndrew Turner double arm_math_sinpi (double); 17*f3087befSAndrew Turner float arm_math_tanpif (float); 18*f3087befSAndrew Turner double arm_math_tanpi (double); 19*f3087befSAndrew Turner void arm_math_sincospif (float, float *, float *); 20*f3087befSAndrew Turner void arm_math_sincospi (double, double *, double *); 2131914882SAlex Richardson #endif 2231914882SAlex Richardson 23*f3087befSAndrew Turner /* SIMD declaration for autovectorisation with fast-math enabled. Only GCC is 24*f3087befSAndrew Turner supported, and vector routines are only supported on Linux on AArch64. */ 25*f3087befSAndrew Turner #if defined __aarch64__ && __linux__ && defined(__GNUC__) \ 26*f3087befSAndrew Turner && !defined(__clang__) && defined(__FAST_MATH__) 27*f3087befSAndrew Turner # define DECL_SIMD_aarch64 __attribute__ ((__simd__ ("notinbranch"), const)) 28*f3087befSAndrew Turner #else 29*f3087befSAndrew Turner # define DECL_SIMD_aarch64 30*f3087befSAndrew Turner #endif 31*f3087befSAndrew Turner 32*f3087befSAndrew Turner #if WANT_EXPERIMENTAL_MATH 33*f3087befSAndrew Turner 34*f3087befSAndrew Turner float arm_math_erff (float); 35*f3087befSAndrew Turner DECL_SIMD_aarch64 float cospif (float); 36*f3087befSAndrew Turner DECL_SIMD_aarch64 float erfinvf (float); 37*f3087befSAndrew Turner DECL_SIMD_aarch64 float sinpif (float); 38*f3087befSAndrew Turner DECL_SIMD_aarch64 float tanpif (float); 39*f3087befSAndrew Turner 40*f3087befSAndrew Turner double arm_math_erf (double); 41*f3087befSAndrew Turner DECL_SIMD_aarch64 double cospi (double); 42*f3087befSAndrew Turner DECL_SIMD_aarch64 double erfinv (double); 43*f3087befSAndrew Turner DECL_SIMD_aarch64 double sinpi (double); 44*f3087befSAndrew Turner DECL_SIMD_aarch64 double tanpi (double); 45*f3087befSAndrew Turner 46*f3087befSAndrew Turner long double erfinvl (long double); 47*f3087befSAndrew Turner 48*f3087befSAndrew Turner #endif 49*f3087befSAndrew Turner 50*f3087befSAndrew Turner /* Note these routines may not be provided by AOR (some are only available with 51*f3087befSAndrew Turner WANT_EXPERIMENTAL_MATH, some are not provided at all. Redeclare them here to 52*f3087befSAndrew Turner add vector annotations. */ 53*f3087befSAndrew Turner DECL_SIMD_aarch64 float acosf (float); 54*f3087befSAndrew Turner DECL_SIMD_aarch64 float acoshf (float); 55*f3087befSAndrew Turner DECL_SIMD_aarch64 float asinf (float); 56*f3087befSAndrew Turner DECL_SIMD_aarch64 float asinhf (float); 57*f3087befSAndrew Turner DECL_SIMD_aarch64 float atan2f (float, float); 58*f3087befSAndrew Turner DECL_SIMD_aarch64 float atanf (float); 59*f3087befSAndrew Turner DECL_SIMD_aarch64 float atanhf (float); 60*f3087befSAndrew Turner DECL_SIMD_aarch64 float cbrtf (float); 61*f3087befSAndrew Turner DECL_SIMD_aarch64 float cosf (float); 62*f3087befSAndrew Turner DECL_SIMD_aarch64 float coshf (float); 63*f3087befSAndrew Turner DECL_SIMD_aarch64 float erfcf (float); 64*f3087befSAndrew Turner DECL_SIMD_aarch64 float erff (float); 65*f3087befSAndrew Turner DECL_SIMD_aarch64 float exp10f (float); 66*f3087befSAndrew Turner DECL_SIMD_aarch64 float exp2f (float); 67*f3087befSAndrew Turner DECL_SIMD_aarch64 float expf (float); 68*f3087befSAndrew Turner DECL_SIMD_aarch64 float expm1f (float); 69*f3087befSAndrew Turner DECL_SIMD_aarch64 float hypotf (float, float); 70*f3087befSAndrew Turner DECL_SIMD_aarch64 float log10f (float); 71*f3087befSAndrew Turner DECL_SIMD_aarch64 float log1pf (float); 72*f3087befSAndrew Turner DECL_SIMD_aarch64 float log2f (float); 73*f3087befSAndrew Turner DECL_SIMD_aarch64 float logf (float); 74*f3087befSAndrew Turner DECL_SIMD_aarch64 float powf (float, float); 75*f3087befSAndrew Turner DECL_SIMD_aarch64 float sinf (float); 76*f3087befSAndrew Turner void sincosf (float, float *, float *); 77*f3087befSAndrew Turner DECL_SIMD_aarch64 float sinhf (float); 78*f3087befSAndrew Turner DECL_SIMD_aarch64 float tanf (float); 79*f3087befSAndrew Turner DECL_SIMD_aarch64 float tanhf (float); 80*f3087befSAndrew Turner 81*f3087befSAndrew Turner DECL_SIMD_aarch64 double acos (double); 82*f3087befSAndrew Turner DECL_SIMD_aarch64 double acosh (double); 83*f3087befSAndrew Turner DECL_SIMD_aarch64 double asin (double); 84*f3087befSAndrew Turner DECL_SIMD_aarch64 double asinh (double); 85*f3087befSAndrew Turner DECL_SIMD_aarch64 double atan2 (double, double); 86*f3087befSAndrew Turner DECL_SIMD_aarch64 double atan (double); 87*f3087befSAndrew Turner DECL_SIMD_aarch64 double atanh (double); 88*f3087befSAndrew Turner DECL_SIMD_aarch64 double cbrt (double); 89*f3087befSAndrew Turner DECL_SIMD_aarch64 double cos (double); 90*f3087befSAndrew Turner DECL_SIMD_aarch64 double cosh (double); 91*f3087befSAndrew Turner DECL_SIMD_aarch64 double erfc (double); 92*f3087befSAndrew Turner DECL_SIMD_aarch64 double erf (double); 93*f3087befSAndrew Turner DECL_SIMD_aarch64 double exp10 (double); 94*f3087befSAndrew Turner DECL_SIMD_aarch64 double exp2 (double); 95*f3087befSAndrew Turner DECL_SIMD_aarch64 double exp (double); 96*f3087befSAndrew Turner DECL_SIMD_aarch64 double expm1 (double); 97*f3087befSAndrew Turner DECL_SIMD_aarch64 double hypot (double, double); 98*f3087befSAndrew Turner DECL_SIMD_aarch64 double log10 (double); 99*f3087befSAndrew Turner DECL_SIMD_aarch64 double log1p (double); 100*f3087befSAndrew Turner DECL_SIMD_aarch64 double log2 (double); 101*f3087befSAndrew Turner DECL_SIMD_aarch64 double log (double); 102*f3087befSAndrew Turner DECL_SIMD_aarch64 double pow (double, double); 103*f3087befSAndrew Turner DECL_SIMD_aarch64 double sin (double); 104*f3087befSAndrew Turner DECL_SIMD_aarch64 double sinh (double); 105*f3087befSAndrew Turner DECL_SIMD_aarch64 double tan (double); 106*f3087befSAndrew Turner DECL_SIMD_aarch64 double tanh (double); 107*f3087befSAndrew Turner 108*f3087befSAndrew Turner #if __aarch64__ && __linux__ 109*f3087befSAndrew Turner # include <arm_neon.h> 1105a02ffc3SAndrew Turner # undef __vpcs 11131914882SAlex Richardson # define __vpcs __attribute__((__aarch64_vector_pcs__)) 11231914882SAlex Richardson 11331914882SAlex Richardson /* Vector functions following the vector PCS using ABI names. */ 114*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_acosf (float32x4_t); 115*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_acoshf (float32x4_t); 116*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_asinf (float32x4_t); 117*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_asinhf (float32x4_t); 118*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_atanf (float32x4_t); 119*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_atanhf (float32x4_t); 120*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_cbrtf (float32x4_t); 121*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_cosf (float32x4_t); 122*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_coshf (float32x4_t); 123*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_cospif (float32x4_t); 124*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_erfcf (float32x4_t); 125*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_erff (float32x4_t); 126*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_exp10f (float32x4_t); 127*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_exp2f (float32x4_t); 128*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_exp2f_1u (float32x4_t); 129*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_expf (float32x4_t); 130*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_expf_1u (float32x4_t); 131*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_expm1f (float32x4_t); 132*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_log10f (float32x4_t); 133*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_log1pf (float32x4_t); 134*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_log2f (float32x4_t); 135*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_logf (float32x4_t); 136*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_sinf (float32x4_t); 137*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_sinhf (float32x4_t); 138*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_sinpif (float32x4_t); 139*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_tanf (float32x4_t); 140*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_tanhf (float32x4_t); 141*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_tanpif (float32x4_t); 142*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4vl4_modff (float32x4_t, float *); 143*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4vv_atan2f (float32x4_t, float32x4_t); 144*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4vv_hypotf (float32x4_t, float32x4_t); 145*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4vv_powf (float32x4_t, float32x4_t); 146*f3087befSAndrew Turner __vpcs float32x4x2_t _ZGVnN4v_cexpif (float32x4_t); 147*f3087befSAndrew Turner __vpcs void _ZGVnN4vl4l4_sincosf (float32x4_t, float *, float *); 148*f3087befSAndrew Turner __vpcs void _ZGVnN4vl4l4_sincospif (float32x4_t, float *, float *); 149*f3087befSAndrew Turner 150*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_acos (float64x2_t); 151*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_acosh (float64x2_t); 152*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_asin (float64x2_t); 153*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_asinh (float64x2_t); 154*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_atan (float64x2_t); 155*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_atanh (float64x2_t); 156*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_cbrt (float64x2_t); 157*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_cos (float64x2_t); 158*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_cosh (float64x2_t); 159*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_cospi (float64x2_t); 160*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_erf (float64x2_t); 161*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_erfc (float64x2_t); 162*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_exp (float64x2_t); 163*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_exp10 (float64x2_t); 164*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_exp2 (float64x2_t); 165*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_expm1 (float64x2_t); 166*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_log (float64x2_t); 167*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_log10 (float64x2_t); 168*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_log1p (float64x2_t); 169*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_log2 (float64x2_t); 170*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_sin (float64x2_t); 171*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_sinh (float64x2_t); 172*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_sinpi (float64x2_t); 173*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_tan (float64x2_t); 174*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_tanh (float64x2_t); 175*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_tanpi (float64x2_t); 176*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2vl8_modf (float64x2_t, double *); 177*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2vv_atan2 (float64x2_t, float64x2_t); 178*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2vv_hypot (float64x2_t, float64x2_t); 179*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2vv_pow (float64x2_t, float64x2_t); 180*f3087befSAndrew Turner __vpcs float64x2x2_t _ZGVnN2v_cexpi (float64x2_t); 181*f3087befSAndrew Turner __vpcs void _ZGVnN2vl8l8_sincos (float64x2_t, double *, double *); 182*f3087befSAndrew Turner __vpcs void _ZGVnN2vl8l8_sincospi (float64x2_t, double *, double *); 183*f3087befSAndrew Turner 184*f3087befSAndrew Turner # if WANT_EXPERIMENTAL_MATH 185*f3087befSAndrew Turner __vpcs float32x4_t _ZGVnN4v_erfinvf (float32x4_t); 186*f3087befSAndrew Turner __vpcs float64x2_t _ZGVnN2v_erfinv (float64x2_t); 187*f3087befSAndrew Turner # endif 188*f3087befSAndrew Turner 189*f3087befSAndrew Turner # include <arm_sve.h> 190*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_acosf (svfloat32_t, svbool_t); 191*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_acoshf (svfloat32_t, svbool_t); 192*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_asinf (svfloat32_t, svbool_t); 193*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_asinhf (svfloat32_t, svbool_t); 194*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_atanf (svfloat32_t, svbool_t); 195*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_atanhf (svfloat32_t, svbool_t); 196*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_cbrtf (svfloat32_t, svbool_t); 197*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_cosf (svfloat32_t, svbool_t); 198*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_coshf (svfloat32_t, svbool_t); 199*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_cospif (svfloat32_t, svbool_t); 200*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_erfcf (svfloat32_t, svbool_t); 201*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_erff (svfloat32_t, svbool_t); 202*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_exp10f (svfloat32_t, svbool_t); 203*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_exp2f (svfloat32_t, svbool_t); 204*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_expf (svfloat32_t, svbool_t); 205*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_expm1f (svfloat32_t, svbool_t); 206*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_log10f (svfloat32_t, svbool_t); 207*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_log1pf (svfloat32_t, svbool_t); 208*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_log2f (svfloat32_t, svbool_t); 209*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_logf (svfloat32_t, svbool_t); 210*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_sinf (svfloat32_t, svbool_t); 211*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_sinhf (svfloat32_t, svbool_t); 212*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_sinpif (svfloat32_t, svbool_t); 213*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_tanf (svfloat32_t, svbool_t); 214*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_tanhf (svfloat32_t, svbool_t); 215*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_tanpif (svfloat32_t, svbool_t); 216*f3087befSAndrew Turner svfloat32_t _ZGVsMxvl4_modff (svfloat32_t, float *, svbool_t); 217*f3087befSAndrew Turner svfloat32_t _ZGVsMxvv_atan2f (svfloat32_t, svfloat32_t, svbool_t); 218*f3087befSAndrew Turner svfloat32_t _ZGVsMxvv_hypotf (svfloat32_t, svfloat32_t, svbool_t); 219*f3087befSAndrew Turner svfloat32_t _ZGVsMxvv_powf (svfloat32_t, svfloat32_t, svbool_t); 220*f3087befSAndrew Turner svfloat32x2_t _ZGVsMxv_cexpif (svfloat32_t, svbool_t); 221*f3087befSAndrew Turner void _ZGVsMxvl4l4_sincosf (svfloat32_t, float *, float *, svbool_t); 222*f3087befSAndrew Turner void _ZGVsMxvl4l4_sincospif (svfloat32_t, float *, float *, svbool_t); 223*f3087befSAndrew Turner 224*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_acos (svfloat64_t, svbool_t); 225*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_acosh (svfloat64_t, svbool_t); 226*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_asin (svfloat64_t, svbool_t); 227*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_asinh (svfloat64_t, svbool_t); 228*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_atan (svfloat64_t, svbool_t); 229*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_atanh (svfloat64_t, svbool_t); 230*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_cbrt (svfloat64_t, svbool_t); 231*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_cos (svfloat64_t, svbool_t); 232*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_cosh (svfloat64_t, svbool_t); 233*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_cospi (svfloat64_t, svbool_t); 234*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_erf (svfloat64_t, svbool_t); 235*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_erfc (svfloat64_t, svbool_t); 236*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_exp (svfloat64_t, svbool_t); 237*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_exp10 (svfloat64_t, svbool_t); 238*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_exp2 (svfloat64_t, svbool_t); 239*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_expm1 (svfloat64_t, svbool_t); 240*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_log (svfloat64_t, svbool_t); 241*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_log10 (svfloat64_t, svbool_t); 242*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_log1p (svfloat64_t, svbool_t); 243*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_log2 (svfloat64_t, svbool_t); 244*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_sin (svfloat64_t, svbool_t); 245*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_sinh (svfloat64_t, svbool_t); 246*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_sinpi (svfloat64_t, svbool_t); 247*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_tan (svfloat64_t, svbool_t); 248*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_tanh (svfloat64_t, svbool_t); 249*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_tanpi (svfloat64_t, svbool_t); 250*f3087befSAndrew Turner svfloat64_t _ZGVsMxvl8_modf (svfloat64_t, double *, svbool_t); 251*f3087befSAndrew Turner svfloat64_t _ZGVsMxvv_atan2 (svfloat64_t, svfloat64_t, svbool_t); 252*f3087befSAndrew Turner svfloat64_t _ZGVsMxvv_hypot (svfloat64_t, svfloat64_t, svbool_t); 253*f3087befSAndrew Turner svfloat64_t _ZGVsMxvv_pow (svfloat64_t, svfloat64_t, svbool_t); 254*f3087befSAndrew Turner svfloat64x2_t _ZGVsMxv_cexpi (svfloat64_t, svbool_t); 255*f3087befSAndrew Turner void _ZGVsMxvl8l8_sincos (svfloat64_t, double *, double *, svbool_t); 256*f3087befSAndrew Turner void _ZGVsMxvl8l8_sincospi (svfloat64_t, double *, double *, svbool_t); 257*f3087befSAndrew Turner 258*f3087befSAndrew Turner # if WANT_EXPERIMENTAL_MATH 259*f3087befSAndrew Turner 260*f3087befSAndrew Turner svfloat32_t _ZGVsMxv_erfinvf (svfloat32_t, svbool_t); 261*f3087befSAndrew Turner svfloat32_t _ZGVsMxvv_powi (svfloat32_t, svint32_t, svbool_t); 262*f3087befSAndrew Turner 263*f3087befSAndrew Turner svfloat64_t _ZGVsMxvv_powk (svfloat64_t, svint64_t, svbool_t); 264*f3087befSAndrew Turner svfloat64_t _ZGVsMxv_erfinv (svfloat64_t, svbool_t); 265*f3087befSAndrew Turner 26631914882SAlex Richardson # endif 26731914882SAlex Richardson #endif 26831914882SAlex Richardson 26931914882SAlex Richardson #endif 270