libm-simd-decl-stubs.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491
  1. //
  2. // Copyright 2026 Aarav Ravindra Kharade
  3. //
  4. // Licensed under the Apache License, Version 2.0 (the "License");
  5. // you may not use this file except in compliance with the License.
  6. // You may obtain a copy of the License at
  7. //
  8. // http://www.apache.org/licenses/LICENSE-2.0
  9. //
  10. // Unless required by applicable law or agreed to in writing, software
  11. // distributed under the License is distributed on an "AS IS" BASIS,
  12. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. // See the License for the specific language governing permissions and
  14. // limitations under the License.
  15. //
  16. /* Empty definitions required for __MATHCALL_VEC unfolding in mathcalls.h.
  17. Copyright (C) 2014-2026 Free Software Foundation, Inc.
  18. This file is part of the GNU C Library.
  19. The GNU C Library is free software; you can redistribute it and/or
  20. modify it under the terms of the GNU Lesser General Public
  21. License as published by the Free Software Foundation; either
  22. version 2.1 of the License, or (at your option) any later version.
  23. The GNU C Library is distributed in the hope that it will be useful,
  24. but WITHOUT ANY WARRANTY; without even the implied warranty of
  25. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  26. Lesser General Public License for more details.
  27. You should have received a copy of the GNU Lesser General Public
  28. License along with the GNU C Library; if not, see
  29. <https://www.gnu.org/licenses/>. */
  30. #ifndef _MATH_H
  31. # error "Never include <bits/libm-simd-decl-stubs.h> directly;\
  32. include <math.h> instead."
  33. #endif
  34. /* Needed definitions could be generated with:
  35. for func in $(grep __MATHCALL_VEC math/bits/mathcalls.h |\
  36. sed -r "s|__MATHCALL_VEC.?\(||; s|,.*||"); do
  37. echo "#define __DECL_SIMD_${func}";
  38. echo "#define __DECL_SIMD_${func}f";
  39. echo "#define __DECL_SIMD_${func}l";
  40. done
  41. */
  42. #ifndef _BITS_LIBM_SIMD_DECL_STUBS_H
  43. #define _BITS_LIBM_SIMD_DECL_STUBS_H 1
  44. #define __DECL_SIMD_cos
  45. #define __DECL_SIMD_cosf
  46. #define __DECL_SIMD_cosl
  47. #define __DECL_SIMD_cosf16
  48. #define __DECL_SIMD_cosf32
  49. #define __DECL_SIMD_cosf64
  50. #define __DECL_SIMD_cosf128
  51. #define __DECL_SIMD_cosf32x
  52. #define __DECL_SIMD_cosf64x
  53. #define __DECL_SIMD_cosf128x
  54. #define __DECL_SIMD_sin
  55. #define __DECL_SIMD_sinf
  56. #define __DECL_SIMD_sinl
  57. #define __DECL_SIMD_sinf16
  58. #define __DECL_SIMD_sinf32
  59. #define __DECL_SIMD_sinf64
  60. #define __DECL_SIMD_sinf128
  61. #define __DECL_SIMD_sinf32x
  62. #define __DECL_SIMD_sinf64x
  63. #define __DECL_SIMD_sinf128x
  64. #define __DECL_SIMD_sincos
  65. #define __DECL_SIMD_sincosf
  66. #define __DECL_SIMD_sincosl
  67. #define __DECL_SIMD_sincosf16
  68. #define __DECL_SIMD_sincosf32
  69. #define __DECL_SIMD_sincosf64
  70. #define __DECL_SIMD_sincosf128
  71. #define __DECL_SIMD_sincosf32x
  72. #define __DECL_SIMD_sincosf64x
  73. #define __DECL_SIMD_sincosf128x
  74. #define __DECL_SIMD_log
  75. #define __DECL_SIMD_logf
  76. #define __DECL_SIMD_logl
  77. #define __DECL_SIMD_logf16
  78. #define __DECL_SIMD_logf32
  79. #define __DECL_SIMD_logf64
  80. #define __DECL_SIMD_logf128
  81. #define __DECL_SIMD_logf32x
  82. #define __DECL_SIMD_logf64x
  83. #define __DECL_SIMD_logf128x
  84. #define __DECL_SIMD_exp
  85. #define __DECL_SIMD_expf
  86. #define __DECL_SIMD_expl
  87. #define __DECL_SIMD_expf16
  88. #define __DECL_SIMD_expf32
  89. #define __DECL_SIMD_expf64
  90. #define __DECL_SIMD_expf128
  91. #define __DECL_SIMD_expf32x
  92. #define __DECL_SIMD_expf64x
  93. #define __DECL_SIMD_expf128x
  94. #define __DECL_SIMD_pow
  95. #define __DECL_SIMD_powf
  96. #define __DECL_SIMD_powl
  97. #define __DECL_SIMD_powf16
  98. #define __DECL_SIMD_powf32
  99. #define __DECL_SIMD_powf64
  100. #define __DECL_SIMD_powf128
  101. #define __DECL_SIMD_powf32x
  102. #define __DECL_SIMD_powf64x
  103. #define __DECL_SIMD_powf128x
  104. #define __DECL_SIMD_acos
  105. #define __DECL_SIMD_acosf
  106. #define __DECL_SIMD_acosl
  107. #define __DECL_SIMD_acosf16
  108. #define __DECL_SIMD_acosf32
  109. #define __DECL_SIMD_acosf64
  110. #define __DECL_SIMD_acosf128
  111. #define __DECL_SIMD_acosf32x
  112. #define __DECL_SIMD_acosf64x
  113. #define __DECL_SIMD_acosf128x
  114. #define __DECL_SIMD_atan
  115. #define __DECL_SIMD_atanf
  116. #define __DECL_SIMD_atanl
  117. #define __DECL_SIMD_atanf16
  118. #define __DECL_SIMD_atanf32
  119. #define __DECL_SIMD_atanf64
  120. #define __DECL_SIMD_atanf128
  121. #define __DECL_SIMD_atanf32x
  122. #define __DECL_SIMD_atanf64x
  123. #define __DECL_SIMD_atanf128x
  124. #define __DECL_SIMD_asin
  125. #define __DECL_SIMD_asinf
  126. #define __DECL_SIMD_asinl
  127. #define __DECL_SIMD_asinf16
  128. #define __DECL_SIMD_asinf32
  129. #define __DECL_SIMD_asinf64
  130. #define __DECL_SIMD_asinf128
  131. #define __DECL_SIMD_asinf32x
  132. #define __DECL_SIMD_asinf64x
  133. #define __DECL_SIMD_asinf128x
  134. #define __DECL_SIMD_hypot
  135. #define __DECL_SIMD_hypotf
  136. #define __DECL_SIMD_hypotl
  137. #define __DECL_SIMD_hypotf16
  138. #define __DECL_SIMD_hypotf32
  139. #define __DECL_SIMD_hypotf64
  140. #define __DECL_SIMD_hypotf128
  141. #define __DECL_SIMD_hypotf32x
  142. #define __DECL_SIMD_hypotf64x
  143. #define __DECL_SIMD_hypotf128x
  144. #define __DECL_SIMD_exp2
  145. #define __DECL_SIMD_exp2f
  146. #define __DECL_SIMD_exp2l
  147. #define __DECL_SIMD_exp2f16
  148. #define __DECL_SIMD_exp2f32
  149. #define __DECL_SIMD_exp2f64
  150. #define __DECL_SIMD_exp2f128
  151. #define __DECL_SIMD_exp2f32x
  152. #define __DECL_SIMD_exp2f64x
  153. #define __DECL_SIMD_exp2f128x
  154. #define __DECL_SIMD_exp10
  155. #define __DECL_SIMD_exp10f
  156. #define __DECL_SIMD_exp10l
  157. #define __DECL_SIMD_exp10f16
  158. #define __DECL_SIMD_exp10f32
  159. #define __DECL_SIMD_exp10f64
  160. #define __DECL_SIMD_exp10f128
  161. #define __DECL_SIMD_exp10f32x
  162. #define __DECL_SIMD_exp10f64x
  163. #define __DECL_SIMD_exp10f128x
  164. #define __DECL_SIMD_cosh
  165. #define __DECL_SIMD_coshf
  166. #define __DECL_SIMD_coshl
  167. #define __DECL_SIMD_coshf16
  168. #define __DECL_SIMD_coshf32
  169. #define __DECL_SIMD_coshf64
  170. #define __DECL_SIMD_coshf128
  171. #define __DECL_SIMD_coshf32x
  172. #define __DECL_SIMD_coshf64x
  173. #define __DECL_SIMD_coshf128x
  174. #define __DECL_SIMD_expm1
  175. #define __DECL_SIMD_expm1f
  176. #define __DECL_SIMD_expm1l
  177. #define __DECL_SIMD_expm1f16
  178. #define __DECL_SIMD_expm1f32
  179. #define __DECL_SIMD_expm1f64
  180. #define __DECL_SIMD_expm1f128
  181. #define __DECL_SIMD_expm1f32x
  182. #define __DECL_SIMD_expm1f64x
  183. #define __DECL_SIMD_expm1f128x
  184. #define __DECL_SIMD_exp2m1
  185. #define __DECL_SIMD_exp2m1f
  186. #define __DECL_SIMD_exp2m1l
  187. #define __DECL_SIMD_exp2m1f16
  188. #define __DECL_SIMD_exp2m1f32
  189. #define __DECL_SIMD_exp2m1f64
  190. #define __DECL_SIMD_exp2m1f128
  191. #define __DECL_SIMD_exp2m1f32x
  192. #define __DECL_SIMD_exp2m1f64x
  193. #define __DECL_SIMD_exp2m1f128x
  194. #define __DECL_SIMD_exp10m1
  195. #define __DECL_SIMD_exp10m1f
  196. #define __DECL_SIMD_exp10m1l
  197. #define __DECL_SIMD_exp10m1f16
  198. #define __DECL_SIMD_exp10m1f32
  199. #define __DECL_SIMD_exp10m1f64
  200. #define __DECL_SIMD_exp10m1f128
  201. #define __DECL_SIMD_exp10m1f32x
  202. #define __DECL_SIMD_exp10m1f64x
  203. #define __DECL_SIMD_exp10m1f128x
  204. #define __DECL_SIMD_sinh
  205. #define __DECL_SIMD_sinhf
  206. #define __DECL_SIMD_sinhl
  207. #define __DECL_SIMD_sinhf16
  208. #define __DECL_SIMD_sinhf32
  209. #define __DECL_SIMD_sinhf64
  210. #define __DECL_SIMD_sinhf128
  211. #define __DECL_SIMD_sinhf32x
  212. #define __DECL_SIMD_sinhf64x
  213. #define __DECL_SIMD_sinhf128x
  214. #define __DECL_SIMD_cbrt
  215. #define __DECL_SIMD_cbrtf
  216. #define __DECL_SIMD_cbrtl
  217. #define __DECL_SIMD_cbrtf16
  218. #define __DECL_SIMD_cbrtf32
  219. #define __DECL_SIMD_cbrtf64
  220. #define __DECL_SIMD_cbrtf128
  221. #define __DECL_SIMD_cbrtf32x
  222. #define __DECL_SIMD_cbrtf64x
  223. #define __DECL_SIMD_cbrtf128x
  224. #define __DECL_SIMD_atan2
  225. #define __DECL_SIMD_atan2f
  226. #define __DECL_SIMD_atan2l
  227. #define __DECL_SIMD_atan2f16
  228. #define __DECL_SIMD_atan2f32
  229. #define __DECL_SIMD_atan2f64
  230. #define __DECL_SIMD_atan2f128
  231. #define __DECL_SIMD_atan2f32x
  232. #define __DECL_SIMD_atan2f64x
  233. #define __DECL_SIMD_atan2f128x
  234. #define __DECL_SIMD_rsqrt
  235. #define __DECL_SIMD_rsqrtf
  236. #define __DECL_SIMD_rsqrtl
  237. #define __DECL_SIMD_rsqrtf16
  238. #define __DECL_SIMD_rsqrtf32
  239. #define __DECL_SIMD_rsqrtf64
  240. #define __DECL_SIMD_rsqrtf128
  241. #define __DECL_SIMD_rsqrtf32x
  242. #define __DECL_SIMD_rsqrtf64x
  243. #define __DECL_SIMD_rsqrtf128x
  244. #define __DECL_SIMD_log10
  245. #define __DECL_SIMD_log10f
  246. #define __DECL_SIMD_log10l
  247. #define __DECL_SIMD_log10f16
  248. #define __DECL_SIMD_log10f32
  249. #define __DECL_SIMD_log10f64
  250. #define __DECL_SIMD_log10f128
  251. #define __DECL_SIMD_log10f32x
  252. #define __DECL_SIMD_log10f64x
  253. #define __DECL_SIMD_log10f128x
  254. #define __DECL_SIMD_log10p1
  255. #define __DECL_SIMD_log10p1f
  256. #define __DECL_SIMD_log10p1l
  257. #define __DECL_SIMD_log10p1f16
  258. #define __DECL_SIMD_log10p1f32
  259. #define __DECL_SIMD_log10p1f64
  260. #define __DECL_SIMD_log10p1f128
  261. #define __DECL_SIMD_log10p1f32x
  262. #define __DECL_SIMD_log10p1f64x
  263. #define __DECL_SIMD_log10p1f128x
  264. #define __DECL_SIMD_log2
  265. #define __DECL_SIMD_log2f
  266. #define __DECL_SIMD_log2l
  267. #define __DECL_SIMD_log2f16
  268. #define __DECL_SIMD_log2f32
  269. #define __DECL_SIMD_log2f64
  270. #define __DECL_SIMD_log2f128
  271. #define __DECL_SIMD_log2f32x
  272. #define __DECL_SIMD_log2f64x
  273. #define __DECL_SIMD_log2f128x
  274. #define __DECL_SIMD_log2p1
  275. #define __DECL_SIMD_log2p1f
  276. #define __DECL_SIMD_log2p1l
  277. #define __DECL_SIMD_log2p1f16
  278. #define __DECL_SIMD_log2p1f32
  279. #define __DECL_SIMD_log2p1f64
  280. #define __DECL_SIMD_log2p1f128
  281. #define __DECL_SIMD_log2p1f32x
  282. #define __DECL_SIMD_log2p1f64x
  283. #define __DECL_SIMD_log2p1f128x
  284. #define __DECL_SIMD_log1p
  285. #define __DECL_SIMD_log1pf
  286. #define __DECL_SIMD_log1pl
  287. #define __DECL_SIMD_log1pf16
  288. #define __DECL_SIMD_log1pf32
  289. #define __DECL_SIMD_log1pf64
  290. #define __DECL_SIMD_log1pf128
  291. #define __DECL_SIMD_log1pf32x
  292. #define __DECL_SIMD_log1pf64x
  293. #define __DECL_SIMD_log1pf128x
  294. #define __DECL_SIMD_logp1
  295. #define __DECL_SIMD_logp1f
  296. #define __DECL_SIMD_logp1l
  297. #define __DECL_SIMD_logp1f16
  298. #define __DECL_SIMD_logp1f32
  299. #define __DECL_SIMD_logp1f64
  300. #define __DECL_SIMD_logp1f128
  301. #define __DECL_SIMD_logp1f32x
  302. #define __DECL_SIMD_logp1f64x
  303. #define __DECL_SIMD_logp1f128x
  304. #define __DECL_SIMD_atanh
  305. #define __DECL_SIMD_atanhf
  306. #define __DECL_SIMD_atanhl
  307. #define __DECL_SIMD_atanhf16
  308. #define __DECL_SIMD_atanhf32
  309. #define __DECL_SIMD_atanhf64
  310. #define __DECL_SIMD_atanhf128
  311. #define __DECL_SIMD_atanhf32x
  312. #define __DECL_SIMD_atanhf64x
  313. #define __DECL_SIMD_atanhf128x
  314. #define __DECL_SIMD_acosh
  315. #define __DECL_SIMD_acoshf
  316. #define __DECL_SIMD_acoshl
  317. #define __DECL_SIMD_acoshf16
  318. #define __DECL_SIMD_acoshf32
  319. #define __DECL_SIMD_acoshf64
  320. #define __DECL_SIMD_acoshf128
  321. #define __DECL_SIMD_acoshf32x
  322. #define __DECL_SIMD_acoshf64x
  323. #define __DECL_SIMD_acoshf128x
  324. #define __DECL_SIMD_erf
  325. #define __DECL_SIMD_erff
  326. #define __DECL_SIMD_erfl
  327. #define __DECL_SIMD_erff16
  328. #define __DECL_SIMD_erff32
  329. #define __DECL_SIMD_erff64
  330. #define __DECL_SIMD_erff128
  331. #define __DECL_SIMD_erff32x
  332. #define __DECL_SIMD_erff64x
  333. #define __DECL_SIMD_erff128x
  334. #define __DECL_SIMD_tanh
  335. #define __DECL_SIMD_tanhf
  336. #define __DECL_SIMD_tanhl
  337. #define __DECL_SIMD_tanhf16
  338. #define __DECL_SIMD_tanhf32
  339. #define __DECL_SIMD_tanhf64
  340. #define __DECL_SIMD_tanhf128
  341. #define __DECL_SIMD_tanhf32x
  342. #define __DECL_SIMD_tanhf64x
  343. #define __DECL_SIMD_tanhf128x
  344. #define __DECL_SIMD_asinh
  345. #define __DECL_SIMD_asinhf
  346. #define __DECL_SIMD_asinhl
  347. #define __DECL_SIMD_asinhf16
  348. #define __DECL_SIMD_asinhf32
  349. #define __DECL_SIMD_asinhf64
  350. #define __DECL_SIMD_asinhf128
  351. #define __DECL_SIMD_asinhf32x
  352. #define __DECL_SIMD_asinhf64x
  353. #define __DECL_SIMD_asinhf128x
  354. #define __DECL_SIMD_erfc
  355. #define __DECL_SIMD_erfcf
  356. #define __DECL_SIMD_erfcl
  357. #define __DECL_SIMD_erfcf16
  358. #define __DECL_SIMD_erfcf32
  359. #define __DECL_SIMD_erfcf64
  360. #define __DECL_SIMD_erfcf128
  361. #define __DECL_SIMD_erfcf32x
  362. #define __DECL_SIMD_erfcf64x
  363. #define __DECL_SIMD_erfcf128x
  364. #define __DECL_SIMD_tan
  365. #define __DECL_SIMD_tanf
  366. #define __DECL_SIMD_tanl
  367. #define __DECL_SIMD_tanf16
  368. #define __DECL_SIMD_tanf32
  369. #define __DECL_SIMD_tanf64
  370. #define __DECL_SIMD_tanf128
  371. #define __DECL_SIMD_tanf32x
  372. #define __DECL_SIMD_tanf64x
  373. #define __DECL_SIMD_tanf128x
  374. #define __DECL_SIMD_sinpi
  375. #define __DECL_SIMD_sinpif
  376. #define __DECL_SIMD_sinpil
  377. #define __DECL_SIMD_sinpif16
  378. #define __DECL_SIMD_sinpif32
  379. #define __DECL_SIMD_sinpif64
  380. #define __DECL_SIMD_sinpif128
  381. #define __DECL_SIMD_sinpif32x
  382. #define __DECL_SIMD_sinpif64x
  383. #define __DECL_SIMD_sinpif128x
  384. #define __DECL_SIMD_cospi
  385. #define __DECL_SIMD_cospif
  386. #define __DECL_SIMD_cospil
  387. #define __DECL_SIMD_cospif16
  388. #define __DECL_SIMD_cospif32
  389. #define __DECL_SIMD_cospif64
  390. #define __DECL_SIMD_cospif128
  391. #define __DECL_SIMD_cospif32x
  392. #define __DECL_SIMD_cospif64x
  393. #define __DECL_SIMD_cospif128x
  394. #define __DECL_SIMD_tanpi
  395. #define __DECL_SIMD_tanpif
  396. #define __DECL_SIMD_tanpil
  397. #define __DECL_SIMD_tanpif16
  398. #define __DECL_SIMD_tanpif32
  399. #define __DECL_SIMD_tanpif64
  400. #define __DECL_SIMD_tanpif128
  401. #define __DECL_SIMD_tanpif32x
  402. #define __DECL_SIMD_tanpif64x
  403. #define __DECL_SIMD_tanpif128x
  404. #define __DECL_SIMD_acospi
  405. #define __DECL_SIMD_acospif
  406. #define __DECL_SIMD_acospil
  407. #define __DECL_SIMD_acospif16
  408. #define __DECL_SIMD_acospif32
  409. #define __DECL_SIMD_acospif64
  410. #define __DECL_SIMD_acospif128
  411. #define __DECL_SIMD_acospif32x
  412. #define __DECL_SIMD_acospif64x
  413. #define __DECL_SIMD_acospif128x
  414. #define __DECL_SIMD_asinpi
  415. #define __DECL_SIMD_asinpif
  416. #define __DECL_SIMD_asinpil
  417. #define __DECL_SIMD_asinpif16
  418. #define __DECL_SIMD_asinpif32
  419. #define __DECL_SIMD_asinpif64
  420. #define __DECL_SIMD_asinpif128
  421. #define __DECL_SIMD_asinpif32x
  422. #define __DECL_SIMD_asinpif64x
  423. #define __DECL_SIMD_asinpif128x
  424. #define __DECL_SIMD_atanpi
  425. #define __DECL_SIMD_atanpif
  426. #define __DECL_SIMD_atanpil
  427. #define __DECL_SIMD_atanpif16
  428. #define __DECL_SIMD_atanpif32
  429. #define __DECL_SIMD_atanpif64
  430. #define __DECL_SIMD_atanpif128
  431. #define __DECL_SIMD_atanpif32x
  432. #define __DECL_SIMD_atanpif64x
  433. #define __DECL_SIMD_atanpif128x
  434. #define __DECL_SIMD_atan2pi
  435. #define __DECL_SIMD_atan2pif
  436. #define __DECL_SIMD_atan2pil
  437. #define __DECL_SIMD_atan2pif16
  438. #define __DECL_SIMD_atan2pif32
  439. #define __DECL_SIMD_atan2pif64
  440. #define __DECL_SIMD_atan2pif128
  441. #define __DECL_SIMD_atan2pif32x
  442. #define __DECL_SIMD_atan2pif64x
  443. #define __DECL_SIMD_atan2pif128x
  444. #endif