math-vector.h 15 KB

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