math-vector.h (14048B) - Raw
1 /* Platform-specific SIMD declarations of math functions. 2 3 Copyright (C) 2023-2025 Free Software Foundation, Inc. 4 This file is part of the GNU C Library. 5 6 The GNU C Library is free software; you can redistribute it and/or 7 modify it under the terms of the GNU Lesser General Public 8 License as published by the Free Software Foundation; either 9 version 2.1 of the License, or (at your option) any later version. 10 11 The GNU C Library is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 Lesser General Public License for more details. 15 16 You should have received a copy of the GNU Lesser General Public 17 License along with the GNU C Library; if not, see 18 <https://www.gnu.org/licenses/>. */ 19 20 #ifndef _MATH_H 21 # error "Never include <bits/math-vector.h> directly;\ 22 include <math.h> instead." 23 #endif 24 25 /* Get default empty definitions for simd declarations. */ 26 #include <bits/libm-simd-decl-stubs.h> 27 28 #if defined __aarch64__ && defined __FAST_MATH__ && __GNUC_PREREQ (6, 0) 29 /* Requires GCC >= 6 for __attribute__ ((__simd__)). */ 30 # define __DECL_SIMD_aarch64 __attribute__ ((__simd__ ("notinbranch"), const)) 31 32 # undef __DECL_SIMD_acos 33 # define __DECL_SIMD_acos __DECL_SIMD_aarch64 34 # undef __DECL_SIMD_acosf 35 # define __DECL_SIMD_acosf __DECL_SIMD_aarch64 36 # undef __DECL_SIMD_acosh 37 # define __DECL_SIMD_acosh __DECL_SIMD_aarch64 38 # undef __DECL_SIMD_acoshf 39 # define __DECL_SIMD_acoshf __DECL_SIMD_aarch64 40 # undef __DECL_SIMD_acospi 41 # define __DECL_SIMD_acospi __DECL_SIMD_aarch64 42 # undef __DECL_SIMD_acospif 43 # define __DECL_SIMD_acospif __DECL_SIMD_aarch64 44 # undef __DECL_SIMD_asin 45 # define __DECL_SIMD_asin __DECL_SIMD_aarch64 46 # undef __DECL_SIMD_asinf 47 # define __DECL_SIMD_asinf __DECL_SIMD_aarch64 48 # undef __DECL_SIMD_asinh 49 # define __DECL_SIMD_asinh __DECL_SIMD_aarch64 50 # undef __DECL_SIMD_asinhf 51 # define __DECL_SIMD_asinhf __DECL_SIMD_aarch64 52 # undef __DECL_SIMD_asinpi 53 # define __DECL_SIMD_asinpi __DECL_SIMD_aarch64 54 # undef __DECL_SIMD_asinpif 55 # define __DECL_SIMD_asinpif __DECL_SIMD_aarch64 56 # undef __DECL_SIMD_atan 57 # define __DECL_SIMD_atan __DECL_SIMD_aarch64 58 # undef __DECL_SIMD_atanf 59 # define __DECL_SIMD_atanf __DECL_SIMD_aarch64 60 # undef __DECL_SIMD_atanh 61 # define __DECL_SIMD_atanh __DECL_SIMD_aarch64 62 # undef __DECL_SIMD_atanhf 63 # define __DECL_SIMD_atanhf __DECL_SIMD_aarch64 64 # undef __DECL_SIMD_atanpi 65 # define __DECL_SIMD_atanpi __DECL_SIMD_aarch64 66 # undef __DECL_SIMD_atanpif 67 # define __DECL_SIMD_atanpif __DECL_SIMD_aarch64 68 # undef __DECL_SIMD_atan2 69 # define __DECL_SIMD_atan2 __DECL_SIMD_aarch64 70 # undef __DECL_SIMD_atan2f 71 # define __DECL_SIMD_atan2f __DECL_SIMD_aarch64 72 # undef __DECL_SIMD_atan2pi 73 # define __DECL_SIMD_atan2pi __DECL_SIMD_aarch64 74 # undef __DECL_SIMD_atan2pif 75 # define __DECL_SIMD_atan2pif __DECL_SIMD_aarch64 76 # undef __DECL_SIMD_cbrt 77 # define __DECL_SIMD_cbrt __DECL_SIMD_aarch64 78 # undef __DECL_SIMD_cbrtf 79 # define __DECL_SIMD_cbrtf __DECL_SIMD_aarch64 80 # undef __DECL_SIMD_cos 81 # define __DECL_SIMD_cos __DECL_SIMD_aarch64 82 # undef __DECL_SIMD_cosf 83 # define __DECL_SIMD_cosf __DECL_SIMD_aarch64 84 # undef __DECL_SIMD_cosh 85 # define __DECL_SIMD_cosh __DECL_SIMD_aarch64 86 # undef __DECL_SIMD_coshf 87 # define __DECL_SIMD_coshf __DECL_SIMD_aarch64 88 # undef __DECL_SIMD_cospi 89 # define __DECL_SIMD_cospi __DECL_SIMD_aarch64 90 # undef __DECL_SIMD_cospif 91 # define __DECL_SIMD_cospif __DECL_SIMD_aarch64 92 # undef __DECL_SIMD_erf 93 # define __DECL_SIMD_erf __DECL_SIMD_aarch64 94 # undef __DECL_SIMD_erff 95 # define __DECL_SIMD_erff __DECL_SIMD_aarch64 96 # undef __DECL_SIMD_erfc 97 # define __DECL_SIMD_erfc __DECL_SIMD_aarch64 98 # undef __DECL_SIMD_erfcf 99 # define __DECL_SIMD_erfcf __DECL_SIMD_aarch64 100 # undef __DECL_SIMD_exp 101 # define __DECL_SIMD_exp __DECL_SIMD_aarch64 102 # undef __DECL_SIMD_expf 103 # define __DECL_SIMD_expf __DECL_SIMD_aarch64 104 # undef __DECL_SIMD_exp10 105 # define __DECL_SIMD_exp10 __DECL_SIMD_aarch64 106 # undef __DECL_SIMD_exp10f 107 # define __DECL_SIMD_exp10f __DECL_SIMD_aarch64 108 # undef __DECL_SIMD_exp2 109 # define __DECL_SIMD_exp2 __DECL_SIMD_aarch64 110 # undef __DECL_SIMD_exp2f 111 # define __DECL_SIMD_exp2f __DECL_SIMD_aarch64 112 # undef __DECL_SIMD_expm1 113 # define __DECL_SIMD_expm1 __DECL_SIMD_aarch64 114 # undef __DECL_SIMD_expm1f 115 # define __DECL_SIMD_expm1f __DECL_SIMD_aarch64 116 # undef __DECL_SIMD_hypot 117 # define __DECL_SIMD_hypot __DECL_SIMD_aarch64 118 # undef __DECL_SIMD_hypotf 119 # define __DECL_SIMD_hypotf __DECL_SIMD_aarch64 120 # undef __DECL_SIMD_log 121 # define __DECL_SIMD_log __DECL_SIMD_aarch64 122 # undef __DECL_SIMD_logf 123 # define __DECL_SIMD_logf __DECL_SIMD_aarch64 124 # undef __DECL_SIMD_log10 125 # define __DECL_SIMD_log10 __DECL_SIMD_aarch64 126 # undef __DECL_SIMD_log10f 127 # define __DECL_SIMD_log10f __DECL_SIMD_aarch64 128 # undef __DECL_SIMD_log1p 129 # define __DECL_SIMD_log1p __DECL_SIMD_aarch64 130 # undef __DECL_SIMD_log1pf 131 # define __DECL_SIMD_log1pf __DECL_SIMD_aarch64 132 # undef __DECL_SIMD_log2 133 # define __DECL_SIMD_log2 __DECL_SIMD_aarch64 134 # undef __DECL_SIMD_log2f 135 # define __DECL_SIMD_log2f __DECL_SIMD_aarch64 136 # undef __DECL_SIMD_logp1 137 # define __DECL_SIMD_logp1 __DECL_SIMD_aarch64 138 # undef __DECL_SIMD_logp1f 139 # define __DECL_SIMD_logp1f __DECL_SIMD_aarch64 140 # undef __DECL_SIMD_pow 141 # define __DECL_SIMD_pow __DECL_SIMD_aarch64 142 # undef __DECL_SIMD_powf 143 # define __DECL_SIMD_powf __DECL_SIMD_aarch64 144 # undef __DECL_SIMD_sin 145 # define __DECL_SIMD_sin __DECL_SIMD_aarch64 146 # undef __DECL_SIMD_sinf 147 # define __DECL_SIMD_sinf __DECL_SIMD_aarch64 148 # undef __DECL_SIMD_sinh 149 # define __DECL_SIMD_sinh __DECL_SIMD_aarch64 150 # undef __DECL_SIMD_sinhf 151 # define __DECL_SIMD_sinhf __DECL_SIMD_aarch64 152 # undef __DECL_SIMD_sinpi 153 # define __DECL_SIMD_sinpi __DECL_SIMD_aarch64 154 # undef __DECL_SIMD_sinpif 155 # define __DECL_SIMD_sinpif __DECL_SIMD_aarch64 156 # undef __DECL_SIMD_tan 157 # define __DECL_SIMD_tan __DECL_SIMD_aarch64 158 # undef __DECL_SIMD_tanf 159 # define __DECL_SIMD_tanf __DECL_SIMD_aarch64 160 # undef __DECL_SIMD_tanh 161 # define __DECL_SIMD_tanh __DECL_SIMD_aarch64 162 # undef __DECL_SIMD_tanhf 163 # define __DECL_SIMD_tanhf __DECL_SIMD_aarch64 164 # undef __DECL_SIMD_tanpi 165 # define __DECL_SIMD_tanpi __DECL_SIMD_aarch64 166 # undef __DECL_SIMD_tanpif 167 # define __DECL_SIMD_tanpif __DECL_SIMD_aarch64 168 #endif 169 170 #if __GNUC_PREREQ(9, 0) 171 # define __ADVSIMD_VEC_MATH_SUPPORTED 172 typedef __Float32x4_t __f32x4_t; 173 typedef __Float64x2_t __f64x2_t; 174 #elif __glibc_clang_prereq(8, 0) 175 # define __ADVSIMD_VEC_MATH_SUPPORTED 176 typedef __attribute__ ((__neon_vector_type__ (4))) float __f32x4_t; 177 typedef __attribute__ ((__neon_vector_type__ (2))) double __f64x2_t; 178 #endif 179 180 #if __GNUC_PREREQ(10, 0) || __glibc_clang_prereq(11, 0) 181 # define __SVE_VEC_MATH_SUPPORTED 182 typedef __SVFloat32_t __sv_f32_t; 183 typedef __SVFloat64_t __sv_f64_t; 184 typedef __SVBool_t __sv_bool_t; 185 #endif 186 187 /* If vector types and vector PCS are unsupported in the working 188 compiler, no choice but to omit vector math declarations. */ 189 190 #ifdef __ADVSIMD_VEC_MATH_SUPPORTED 191 192 # define __vpcs __attribute__ ((__aarch64_vector_pcs__)) 193 194 __vpcs __f32x4_t _ZGVnN4vv_atan2f (__f32x4_t, __f32x4_t); 195 __vpcs __f32x4_t _ZGVnN4vv_atan2pif (__f32x4_t, __f32x4_t); 196 __vpcs __f32x4_t _ZGVnN4v_acosf (__f32x4_t); 197 __vpcs __f32x4_t _ZGVnN4v_acoshf (__f32x4_t); 198 __vpcs __f32x4_t _ZGVnN4v_acospif (__f32x4_t); 199 __vpcs __f32x4_t _ZGVnN4v_asinf (__f32x4_t); 200 __vpcs __f32x4_t _ZGVnN4v_asinhf (__f32x4_t); 201 __vpcs __f32x4_t _ZGVnN4v_asinpif (__f32x4_t); 202 __vpcs __f32x4_t _ZGVnN4v_atanf (__f32x4_t); 203 __vpcs __f32x4_t _ZGVnN4v_atanhf (__f32x4_t); 204 __vpcs __f32x4_t _ZGVnN4v_atanpif (__f32x4_t); 205 __vpcs __f32x4_t _ZGVnN4v_cbrtf (__f32x4_t); 206 __vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t); 207 __vpcs __f32x4_t _ZGVnN4v_coshf (__f32x4_t); 208 __vpcs __f32x4_t _ZGVnN4v_cospif (__f32x4_t); 209 __vpcs __f32x4_t _ZGVnN4v_erff (__f32x4_t); 210 __vpcs __f32x4_t _ZGVnN4v_erfcf (__f32x4_t); 211 __vpcs __f32x4_t _ZGVnN4v_expf (__f32x4_t); 212 __vpcs __f32x4_t _ZGVnN4v_exp10f (__f32x4_t); 213 __vpcs __f32x4_t _ZGVnN4v_exp2f (__f32x4_t); 214 __vpcs __f32x4_t _ZGVnN4v_expm1f (__f32x4_t); 215 __vpcs __f32x4_t _ZGVnN4vv_hypotf (__f32x4_t, __f32x4_t); 216 __vpcs __f32x4_t _ZGVnN4v_logf (__f32x4_t); 217 __vpcs __f32x4_t _ZGVnN4v_log10f (__f32x4_t); 218 __vpcs __f32x4_t _ZGVnN4v_log1pf (__f32x4_t); 219 __vpcs __f32x4_t _ZGVnN4v_log2f (__f32x4_t); 220 __vpcs __f32x4_t _ZGVnN4v_logp1f (__f32x4_t); 221 __vpcs __f32x4_t _ZGVnN4vv_powf (__f32x4_t, __f32x4_t); 222 __vpcs __f32x4_t _ZGVnN4v_sinf (__f32x4_t); 223 __vpcs __f32x4_t _ZGVnN4v_sinhf (__f32x4_t); 224 __vpcs __f32x4_t _ZGVnN4v_sinpif (__f32x4_t); 225 __vpcs __f32x4_t _ZGVnN4v_tanf (__f32x4_t); 226 __vpcs __f32x4_t _ZGVnN4v_tanhf (__f32x4_t); 227 __vpcs __f32x4_t _ZGVnN4v_tanpif (__f32x4_t); 228 229 __vpcs __f64x2_t _ZGVnN2vv_atan2 (__f64x2_t, __f64x2_t); 230 __vpcs __f64x2_t _ZGVnN2vv_atan2pi (__f64x2_t, __f64x2_t); 231 __vpcs __f64x2_t _ZGVnN2v_acos (__f64x2_t); 232 __vpcs __f64x2_t _ZGVnN2v_acosh (__f64x2_t); 233 __vpcs __f64x2_t _ZGVnN2v_acospi (__f64x2_t); 234 __vpcs __f64x2_t _ZGVnN2v_asin (__f64x2_t); 235 __vpcs __f64x2_t _ZGVnN2v_asinh (__f64x2_t); 236 __vpcs __f64x2_t _ZGVnN2v_asinpi (__f64x2_t); 237 __vpcs __f64x2_t _ZGVnN2v_atan (__f64x2_t); 238 __vpcs __f64x2_t _ZGVnN2v_atanh (__f64x2_t); 239 __vpcs __f64x2_t _ZGVnN2v_atanpi (__f64x2_t); 240 __vpcs __f64x2_t _ZGVnN2v_cbrt (__f64x2_t); 241 __vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t); 242 __vpcs __f64x2_t _ZGVnN2v_cosh (__f64x2_t); 243 __vpcs __f64x2_t _ZGVnN2v_cospi (__f64x2_t); 244 __vpcs __f64x2_t _ZGVnN2v_erf (__f64x2_t); 245 __vpcs __f64x2_t _ZGVnN2v_erfc (__f64x2_t); 246 __vpcs __f64x2_t _ZGVnN2v_exp (__f64x2_t); 247 __vpcs __f64x2_t _ZGVnN2v_exp10 (__f64x2_t); 248 __vpcs __f64x2_t _ZGVnN2v_exp2 (__f64x2_t); 249 __vpcs __f64x2_t _ZGVnN2v_expm1 (__f64x2_t); 250 __vpcs __f64x2_t _ZGVnN2vv_hypot (__f64x2_t, __f64x2_t); 251 __vpcs __f64x2_t _ZGVnN2v_log (__f64x2_t); 252 __vpcs __f64x2_t _ZGVnN2v_log10 (__f64x2_t); 253 __vpcs __f64x2_t _ZGVnN2v_log1p (__f64x2_t); 254 __vpcs __f64x2_t _ZGVnN2v_log2 (__f64x2_t); 255 __vpcs __f64x2_t _ZGVnN2v_logp1 (__f64x2_t); 256 __vpcs __f64x2_t _ZGVnN2vv_pow (__f64x2_t, __f64x2_t); 257 __vpcs __f64x2_t _ZGVnN2v_sin (__f64x2_t); 258 __vpcs __f64x2_t _ZGVnN2v_sinh (__f64x2_t); 259 __vpcs __f64x2_t _ZGVnN2v_sinpi (__f64x2_t); 260 __vpcs __f64x2_t _ZGVnN2v_tan (__f64x2_t); 261 __vpcs __f64x2_t _ZGVnN2v_tanh (__f64x2_t); 262 __vpcs __f64x2_t _ZGVnN2v_tanpi (__f64x2_t); 263 264 # undef __ADVSIMD_VEC_MATH_SUPPORTED 265 #endif /* __ADVSIMD_VEC_MATH_SUPPORTED */ 266 267 #ifdef __SVE_VEC_MATH_SUPPORTED 268 269 __sv_f32_t _ZGVsMxvv_atan2f (__sv_f32_t, __sv_f32_t, __sv_bool_t); 270 __sv_f32_t _ZGVsMxvv_atan2pif (__sv_f32_t, __sv_f32_t, __sv_bool_t); 271 __sv_f32_t _ZGVsMxv_acosf (__sv_f32_t, __sv_bool_t); 272 __sv_f32_t _ZGVsMxv_acoshf (__sv_f32_t, __sv_bool_t); 273 __sv_f32_t _ZGVsMxv_acospif (__sv_f32_t, __sv_bool_t); 274 __sv_f32_t _ZGVsMxv_asinf (__sv_f32_t, __sv_bool_t); 275 __sv_f32_t _ZGVsMxv_asinhf (__sv_f32_t, __sv_bool_t); 276 __sv_f32_t _ZGVsMxv_asinpif (__sv_f32_t, __sv_bool_t); 277 __sv_f32_t _ZGVsMxv_atanf (__sv_f32_t, __sv_bool_t); 278 __sv_f32_t _ZGVsMxv_atanhf (__sv_f32_t, __sv_bool_t); 279 __sv_f32_t _ZGVsMxv_atanpif (__sv_f32_t, __sv_bool_t); 280 __sv_f32_t _ZGVsMxv_cbrtf (__sv_f32_t, __sv_bool_t); 281 __sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t); 282 __sv_f32_t _ZGVsMxv_coshf (__sv_f32_t, __sv_bool_t); 283 __sv_f32_t _ZGVsMxv_cospif (__sv_f32_t, __sv_bool_t); 284 __sv_f32_t _ZGVsMxv_erff (__sv_f32_t, __sv_bool_t); 285 __sv_f32_t _ZGVsMxv_erfcf (__sv_f32_t, __sv_bool_t); 286 __sv_f32_t _ZGVsMxv_expf (__sv_f32_t, __sv_bool_t); 287 __sv_f32_t _ZGVsMxv_exp10f (__sv_f32_t, __sv_bool_t); 288 __sv_f32_t _ZGVsMxv_exp2f (__sv_f32_t, __sv_bool_t); 289 __sv_f32_t _ZGVsMxv_expm1f (__sv_f32_t, __sv_bool_t); 290 __sv_f32_t _ZGVsMxvv_hypotf (__sv_f32_t, __sv_f32_t, __sv_bool_t); 291 __sv_f32_t _ZGVsMxv_logf (__sv_f32_t, __sv_bool_t); 292 __sv_f32_t _ZGVsMxv_log10f (__sv_f32_t, __sv_bool_t); 293 __sv_f32_t _ZGVsMxv_log1pf (__sv_f32_t, __sv_bool_t); 294 __sv_f32_t _ZGVsMxv_log2f (__sv_f32_t, __sv_bool_t); 295 __sv_f32_t _ZGVsMxv_logp1f (__sv_f32_t, __sv_bool_t); 296 __sv_f32_t _ZGVsMxvv_powf (__sv_f32_t, __sv_f32_t, __sv_bool_t); 297 __sv_f32_t _ZGVsMxv_sinf (__sv_f32_t, __sv_bool_t); 298 __sv_f32_t _ZGVsMxv_sinhf (__sv_f32_t, __sv_bool_t); 299 __sv_f32_t _ZGVsMxv_sinpif (__sv_f32_t, __sv_bool_t); 300 __sv_f32_t _ZGVsMxv_tanf (__sv_f32_t, __sv_bool_t); 301 __sv_f32_t _ZGVsMxv_tanhf (__sv_f32_t, __sv_bool_t); 302 __sv_f32_t _ZGVsMxv_tanpif (__sv_f32_t, __sv_bool_t); 303 304 __sv_f64_t _ZGVsMxvv_atan2 (__sv_f64_t, __sv_f64_t, __sv_bool_t); 305 __sv_f64_t _ZGVsMxvv_atan2pi (__sv_f64_t, __sv_f64_t, __sv_bool_t); 306 __sv_f64_t _ZGVsMxv_acos (__sv_f64_t, __sv_bool_t); 307 __sv_f64_t _ZGVsMxv_acosh (__sv_f64_t, __sv_bool_t); 308 __sv_f64_t _ZGVsMxv_acospi (__sv_f64_t, __sv_bool_t); 309 __sv_f64_t _ZGVsMxv_asin (__sv_f64_t, __sv_bool_t); 310 __sv_f64_t _ZGVsMxv_asinh (__sv_f64_t, __sv_bool_t); 311 __sv_f64_t _ZGVsMxv_asinpi (__sv_f64_t, __sv_bool_t); 312 __sv_f64_t _ZGVsMxv_atan (__sv_f64_t, __sv_bool_t); 313 __sv_f64_t _ZGVsMxv_atanh (__sv_f64_t, __sv_bool_t); 314 __sv_f64_t _ZGVsMxv_atanpi (__sv_f64_t, __sv_bool_t); 315 __sv_f64_t _ZGVsMxv_cbrt (__sv_f64_t, __sv_bool_t); 316 __sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t); 317 __sv_f64_t _ZGVsMxv_cosh (__sv_f64_t, __sv_bool_t); 318 __sv_f64_t _ZGVsMxv_cospi (__sv_f64_t, __sv_bool_t); 319 __sv_f64_t _ZGVsMxv_erf (__sv_f64_t, __sv_bool_t); 320 __sv_f64_t _ZGVsMxv_erfc (__sv_f64_t, __sv_bool_t); 321 __sv_f64_t _ZGVsMxv_exp (__sv_f64_t, __sv_bool_t); 322 __sv_f64_t _ZGVsMxv_exp10 (__sv_f64_t, __sv_bool_t); 323 __sv_f64_t _ZGVsMxv_exp2 (__sv_f64_t, __sv_bool_t); 324 __sv_f64_t _ZGVsMxv_expm1 (__sv_f64_t, __sv_bool_t); 325 __sv_f64_t _ZGVsMxvv_hypot (__sv_f64_t, __sv_f64_t, __sv_bool_t); 326 __sv_f64_t _ZGVsMxv_log (__sv_f64_t, __sv_bool_t); 327 __sv_f64_t _ZGVsMxv_log10 (__sv_f64_t, __sv_bool_t); 328 __sv_f64_t _ZGVsMxv_log1p (__sv_f64_t, __sv_bool_t); 329 __sv_f64_t _ZGVsMxv_log2 (__sv_f64_t, __sv_bool_t); 330 __sv_f64_t _ZGVsMxv_logp1 (__sv_f64_t, __sv_bool_t); 331 __sv_f64_t _ZGVsMxvv_pow (__sv_f64_t, __sv_f64_t, __sv_bool_t); 332 __sv_f64_t _ZGVsMxv_sin (__sv_f64_t, __sv_bool_t); 333 __sv_f64_t _ZGVsMxv_sinh (__sv_f64_t, __sv_bool_t); 334 __sv_f64_t _ZGVsMxv_sinpi (__sv_f64_t, __sv_bool_t); 335 __sv_f64_t _ZGVsMxv_tan (__sv_f64_t, __sv_bool_t); 336 __sv_f64_t _ZGVsMxv_tanh (__sv_f64_t, __sv_bool_t); 337 __sv_f64_t _ZGVsMxv_tanpi (__sv_f64_t, __sv_bool_t); 338 339 # undef __SVE_VEC_MATH_SUPPORTED 340 #endif /* __SVE_VEC_MATH_SUPPORTED */