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