comparison gcc/config/aarch64/aarch64-sve-builtins-base.h @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
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