1 /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
2 Copyright (C) 2018-2025 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
11 GCC is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3. If not see
18 <http://www.gnu.org/licenses/>. */
20 #ifndef GCC_AARCH64_SVE_BUILTINS_BASE_H
21 #define GCC_AARCH64_SVE_BUILTINS_BASE_H
27 extern const function_base
*const svabd
;
28 extern const function_base
*const svabs
;
29 extern const function_base
*const svacge
;
30 extern const function_base
*const svacgt
;
31 extern const function_base
*const svacle
;
32 extern const function_base
*const svaclt
;
33 extern const function_base
*const svadd
;
34 extern const function_base
*const svadda
;
35 extern const function_base
*const svaddv
;
36 extern const function_base
*const svadrb
;
37 extern const function_base
*const svadrd
;
38 extern const function_base
*const svadrh
;
39 extern const function_base
*const svadrw
;
40 extern const function_base
*const svamax
;
41 extern const function_base
*const svamin
;
42 extern const function_base
*const svand
;
43 extern const function_base
*const svandv
;
44 extern const function_base
*const svasr
;
45 extern const function_base
*const svasr_wide
;
46 extern const function_base
*const svasrd
;
47 extern const function_base
*const svbfdot
;
48 extern const function_base
*const svbfdot_lane
;
49 extern const function_base
*const svbfmlalb
;
50 extern const function_base
*const svbfmlalb_lane
;
51 extern const function_base
*const svbfmlalt
;
52 extern const function_base
*const svbfmlalt_lane
;
53 extern const function_base
*const svbfmmla
;
54 extern const function_base
*const svbic
;
55 extern const function_base
*const svbrka
;
56 extern const function_base
*const svbrkb
;
57 extern const function_base
*const svbrkn
;
58 extern const function_base
*const svbrkpa
;
59 extern const function_base
*const svbrkpb
;
60 extern const function_base
*const svcadd
;
61 extern const function_base
*const svclasta
;
62 extern const function_base
*const svclastb
;
63 extern const function_base
*const svcls
;
64 extern const function_base
*const svclz
;
65 extern const function_base
*const svcmla
;
66 extern const function_base
*const svcmla_lane
;
67 extern const function_base
*const svcmpeq
;
68 extern const function_base
*const svcmpeq_wide
;
69 extern const function_base
*const svcmpge
;
70 extern const function_base
*const svcmpge_wide
;
71 extern const function_base
*const svcmpgt
;
72 extern const function_base
*const svcmpgt_wide
;
73 extern const function_base
*const svcmple
;
74 extern const function_base
*const svcmple_wide
;
75 extern const function_base
*const svcmplt
;
76 extern const function_base
*const svcmplt_wide
;
77 extern const function_base
*const svcmpne
;
78 extern const function_base
*const svcmpne_wide
;
79 extern const function_base
*const svcmpuo
;
80 extern const function_base
*const svcnot
;
81 extern const function_base
*const svcnt
;
82 extern const function_base
*const svcntb
;
83 extern const function_base
*const svcntb_pat
;
84 extern const function_base
*const svcntd
;
85 extern const function_base
*const svcntd_pat
;
86 extern const function_base
*const svcnth
;
87 extern const function_base
*const svcnth_pat
;
88 extern const function_base
*const svcntp
;
89 extern const function_base
*const svcntw
;
90 extern const function_base
*const svcntw_pat
;
91 extern const function_base
*const svcompact
;
92 extern const function_base
*const svcreate2
;
93 extern const function_base
*const svcreate3
;
94 extern const function_base
*const svcreate4
;
95 extern const function_base
*const svcvt
;
96 extern const function_base
*const svcvtnt
;
97 extern const function_base
*const svdiv
;
98 extern const function_base
*const svdivr
;
99 extern const function_base
*const svdot
;
100 extern const function_base
*const svdot_lane
;
101 extern const function_base
*const svdup
;
102 extern const function_base
*const svdup_lane
;
103 extern const function_base
*const svdupq
;
104 extern const function_base
*const svdupq_lane
;
105 extern const function_base
*const sveor
;
106 extern const function_base
*const sveorv
;
107 extern const function_base
*const svexpa
;
108 extern const function_base
*const svext
;
109 extern const function_base
*const svextb
;
110 extern const function_base
*const svexth
;
111 extern const function_base
*const svextw
;
112 extern const function_base
*const svget2
;
113 extern const function_base
*const svget3
;
114 extern const function_base
*const svget4
;
115 extern const function_base
*const svindex
;
116 extern const function_base
*const svinsr
;
117 extern const function_base
*const svlasta
;
118 extern const function_base
*const svlastb
;
119 extern const function_base
*const svld1
;
120 extern const function_base
*const svld1_gather
;
121 extern const function_base
*const svld1ro
;
122 extern const function_base
*const svld1rq
;
123 extern const function_base
*const svld1sb
;
124 extern const function_base
*const svld1sb_gather
;
125 extern const function_base
*const svld1sh
;
126 extern const function_base
*const svld1sh_gather
;
127 extern const function_base
*const svld1sw
;
128 extern const function_base
*const svld1sw_gather
;
129 extern const function_base
*const svld1ub
;
130 extern const function_base
*const svld1ub_gather
;
131 extern const function_base
*const svld1uh
;
132 extern const function_base
*const svld1uh_gather
;
133 extern const function_base
*const svld1uw
;
134 extern const function_base
*const svld1uw_gather
;
135 extern const function_base
*const svld2
;
136 extern const function_base
*const svld3
;
137 extern const function_base
*const svld4
;
138 extern const function_base
*const svldff1
;
139 extern const function_base
*const svldff1_gather
;
140 extern const function_base
*const svldff1sb
;
141 extern const function_base
*const svldff1sb_gather
;
142 extern const function_base
*const svldff1sh
;
143 extern const function_base
*const svldff1sh_gather
;
144 extern const function_base
*const svldff1sw
;
145 extern const function_base
*const svldff1sw_gather
;
146 extern const function_base
*const svldff1ub
;
147 extern const function_base
*const svldff1ub_gather
;
148 extern const function_base
*const svldff1uh
;
149 extern const function_base
*const svldff1uh_gather
;
150 extern const function_base
*const svldff1uw
;
151 extern const function_base
*const svldff1uw_gather
;
152 extern const function_base
*const svldnf1
;
153 extern const function_base
*const svldnf1sb
;
154 extern const function_base
*const svldnf1sh
;
155 extern const function_base
*const svldnf1sw
;
156 extern const function_base
*const svldnf1ub
;
157 extern const function_base
*const svldnf1uh
;
158 extern const function_base
*const svldnf1uw
;
159 extern const function_base
*const svldnt1
;
160 extern const function_base
*const svlen
;
161 extern const function_base
*const svlsl
;
162 extern const function_base
*const svlsl_wide
;
163 extern const function_base
*const svlsr
;
164 extern const function_base
*const svlsr_wide
;
165 extern const function_base
*const svmad
;
166 extern const function_base
*const svmax
;
167 extern const function_base
*const svmaxnm
;
168 extern const function_base
*const svmaxnmv
;
169 extern const function_base
*const svmaxv
;
170 extern const function_base
*const svmin
;
171 extern const function_base
*const svminnm
;
172 extern const function_base
*const svminnmv
;
173 extern const function_base
*const svminv
;
174 extern const function_base
*const svmla
;
175 extern const function_base
*const svmla_lane
;
176 extern const function_base
*const svmls
;
177 extern const function_base
*const svmls_lane
;
178 extern const function_base
*const svmmla
;
179 extern const function_base
*const svmov
;
180 extern const function_base
*const svmsb
;
181 extern const function_base
*const svmul
;
182 extern const function_base
*const svmul_lane
;
183 extern const function_base
*const svmulh
;
184 extern const function_base
*const svmulx
;
185 extern const function_base
*const svnand
;
186 extern const function_base
*const svneg
;
187 extern const function_base
*const svnmad
;
188 extern const function_base
*const svnmla
;
189 extern const function_base
*const svnmls
;
190 extern const function_base
*const svnmsb
;
191 extern const function_base
*const svnor
;
192 extern const function_base
*const svnot
;
193 extern const function_base
*const svorn
;
194 extern const function_base
*const svorr
;
195 extern const function_base
*const svorv
;
196 extern const function_base
*const svpfalse
;
197 extern const function_base
*const svpfirst
;
198 extern const function_base
*const svpnext
;
199 extern const function_base
*const svprfb
;
200 extern const function_base
*const svprfb_gather
;
201 extern const function_base
*const svprfd
;
202 extern const function_base
*const svprfd_gather
;
203 extern const function_base
*const svprfh
;
204 extern const function_base
*const svprfh_gather
;
205 extern const function_base
*const svprfw
;
206 extern const function_base
*const svprfw_gather
;
207 extern const function_base
*const svptest_any
;
208 extern const function_base
*const svptest_first
;
209 extern const function_base
*const svptest_last
;
210 extern const function_base
*const svptrue
;
211 extern const function_base
*const svptrue_pat
;
212 extern const function_base
*const svqadd
;
213 extern const function_base
*const svqdecb
;
214 extern const function_base
*const svqdecb_pat
;
215 extern const function_base
*const svqdecd
;
216 extern const function_base
*const svqdecd_pat
;
217 extern const function_base
*const svqdech
;
218 extern const function_base
*const svqdech_pat
;
219 extern const function_base
*const svqdecp
;
220 extern const function_base
*const svqdecw
;
221 extern const function_base
*const svqdecw_pat
;
222 extern const function_base
*const svqincb
;
223 extern const function_base
*const svqincb_pat
;
224 extern const function_base
*const svqincd
;
225 extern const function_base
*const svqincd_pat
;
226 extern const function_base
*const svqinch
;
227 extern const function_base
*const svqinch_pat
;
228 extern const function_base
*const svqincp
;
229 extern const function_base
*const svqincw
;
230 extern const function_base
*const svqincw_pat
;
231 extern const function_base
*const svqsub
;
232 extern const function_base
*const svrbit
;
233 extern const function_base
*const svrdffr
;
234 extern const function_base
*const svrecpe
;
235 extern const function_base
*const svrecps
;
236 extern const function_base
*const svrecpx
;
237 extern const function_base
*const svreinterpret
;
238 extern const function_base
*const svrev
;
239 extern const function_base
*const svrevb
;
240 extern const function_base
*const svrevh
;
241 extern const function_base
*const svrevw
;
242 extern const function_base
*const svrinta
;
243 extern const function_base
*const svrinti
;
244 extern const function_base
*const svrintm
;
245 extern const function_base
*const svrintn
;
246 extern const function_base
*const svrintp
;
247 extern const function_base
*const svrintx
;
248 extern const function_base
*const svrintz
;
249 extern const function_base
*const svrsqrte
;
250 extern const function_base
*const svrsqrts
;
251 extern const function_base
*const svscale
;
252 extern const function_base
*const svsel
;
253 extern const function_base
*const svset2
;
254 extern const function_base
*const svset3
;
255 extern const function_base
*const svset4
;
256 extern const function_base
*const svsetffr
;
257 extern const function_base
*const svsplice
;
258 extern const function_base
*const svsqrt
;
259 extern const function_base
*const svst1
;
260 extern const function_base
*const svst1_scatter
;
261 extern const function_base
*const svst1b
;
262 extern const function_base
*const svst1b_scatter
;
263 extern const function_base
*const svst1h
;
264 extern const function_base
*const svst1h_scatter
;
265 extern const function_base
*const svst1w
;
266 extern const function_base
*const svst1w_scatter
;
267 extern const function_base
*const svst2
;
268 extern const function_base
*const svst3
;
269 extern const function_base
*const svst4
;
270 extern const function_base
*const svstnt1
;
271 extern const function_base
*const svsub
;
272 extern const function_base
*const svsubr
;
273 extern const function_base
*const svsudot
;
274 extern const function_base
*const svsudot_lane
;
275 extern const function_base
*const svtbl
;
276 extern const function_base
*const svtmad
;
277 extern const function_base
*const svtrn1
;
278 extern const function_base
*const svtrn1q
;
279 extern const function_base
*const svtrn2
;
280 extern const function_base
*const svtrn2q
;
281 extern const function_base
*const svtsmul
;
282 extern const function_base
*const svtssel
;
283 extern const function_base
*const svundef
;
284 extern const function_base
*const svundef2
;
285 extern const function_base
*const svundef3
;
286 extern const function_base
*const svundef4
;
287 extern const function_base
*const svunpkhi
;
288 extern const function_base
*const svunpklo
;
289 extern const function_base
*const svusdot
;
290 extern const function_base
*const svusdot_lane
;
291 extern const function_base
*const svusmmla
;
292 extern const function_base
*const svuzp1
;
293 extern const function_base
*const svuzp1q
;
294 extern const function_base
*const svuzp2
;
295 extern const function_base
*const svuzp2q
;
296 extern const function_base
*const svwhilele
;
297 extern const function_base
*const svwhilelt
;
298 extern const function_base
*const svwrffr
;
299 extern const function_base
*const svzip1
;
300 extern const function_base
*const svzip1q
;
301 extern const function_base
*const svzip2
;
302 extern const function_base
*const svzip2q
;
304 namespace neon_sve_bridge_functions
306 extern const function_base
*const svset_neonq
;
307 extern const function_base
*const svget_neonq
;
308 extern const function_base
*const svdup_neonq
;