[PR testsuite/116860] Testsuite adjustment for recently added tests
[official-gcc.git] / gcc / config / aarch64 / aarch64-sve-builtins-base.h
blobfa80fc1cc17c0567de45afcd61564440fbc8198b
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)
9 any later version.
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
23 namespace aarch64_sve
25 namespace functions
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;
312 #endif