summaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/aarch64-sve-builtins-base.h
blob: dc8d68536109f8945d263c460bdce2d22fd0200d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
/* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
   Copyright (C) 2018-2021 Free Software Foundation, Inc.

   This file is part of GCC.

   GCC is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3, or (at your option)
   any later version.

   GCC is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with GCC; see the file COPYING3.  If not see
   <http://www.gnu.org/licenses/>.  */

#ifndef GCC_AARCH64_SVE_BUILTINS_BASE_H
#define GCC_AARCH64_SVE_BUILTINS_BASE_H

namespace aarch64_sve
{
  namespace functions
  {
    extern const function_base *const svabd;
    extern const function_base *const svabs;
    extern const function_base *const svacge;
    extern const function_base *const svacgt;
    extern const function_base *const svacle;
    extern const function_base *const svaclt;
    extern const function_base *const svadd;
    extern const function_base *const svadda;
    extern const function_base *const svaddv;
    extern const function_base *const svadrb;
    extern const function_base *const svadrd;
    extern const function_base *const svadrh;
    extern const function_base *const svadrw;
    extern const function_base *const svand;
    extern const function_base *const svandv;
    extern const function_base *const svasr;
    extern const function_base *const svasr_wide;
    extern const function_base *const svasrd;
    extern const function_base *const svbfdot;
    extern const function_base *const svbfdot_lane;
    extern const function_base *const svbfmlalb;
    extern const function_base *const svbfmlalb_lane;
    extern const function_base *const svbfmlalt;
    extern const function_base *const svbfmlalt_lane;
    extern const function_base *const svbfmmla;
    extern const function_base *const svbic;
    extern const function_base *const svbrka;
    extern const function_base *const svbrkb;
    extern const function_base *const svbrkn;
    extern const function_base *const svbrkpa;
    extern const function_base *const svbrkpb;
    extern const function_base *const svcadd;
    extern const function_base *const svclasta;
    extern const function_base *const svclastb;
    extern const function_base *const svcls;
    extern const function_base *const svclz;
    extern const function_base *const svcmla;
    extern const function_base *const svcmla_lane;
    extern const function_base *const svcmpeq;
    extern const function_base *const svcmpeq_wide;
    extern const function_base *const svcmpge;
    extern const function_base *const svcmpge_wide;
    extern const function_base *const svcmpgt;
    extern const function_base *const svcmpgt_wide;
    extern const function_base *const svcmple;
    extern const function_base *const svcmple_wide;
    extern const function_base *const svcmplt;
    extern const function_base *const svcmplt_wide;
    extern const function_base *const svcmpne;
    extern const function_base *const svcmpne_wide;
    extern const function_base *const svcmpuo;
    extern const function_base *const svcnot;
    extern const function_base *const svcnt;
    extern const function_base *const svcntb;
    extern const function_base *const svcntb_pat;
    extern const function_base *const svcntd;
    extern const function_base *const svcntd_pat;
    extern const function_base *const svcnth;
    extern const function_base *const svcnth_pat;
    extern const function_base *const svcntp;
    extern const function_base *const svcntw;
    extern const function_base *const svcntw_pat;
    extern const function_base *const svcompact;
    extern const function_base *const svcreate2;
    extern const function_base *const svcreate3;
    extern const function_base *const svcreate4;
    extern const function_base *const svcvt;
    extern const function_base *const svcvtnt;
    extern const function_base *const svdiv;
    extern const function_base *const svdivr;
    extern const function_base *const svdot;
    extern const function_base *const svdot_lane;
    extern const function_base *const svdup;
    extern const function_base *const svdup_lane;
    extern const function_base *const svdupq;
    extern const function_base *const svdupq_lane;
    extern const function_base *const sveor;
    extern const function_base *const sveorv;
    extern const function_base *const svexpa;
    extern const function_base *const svext;
    extern const function_base *const svextb;
    extern const function_base *const svexth;
    extern const function_base *const svextw;
    extern const function_base *const svget2;
    extern const function_base *const svget3;
    extern const function_base *const svget4;
    extern const function_base *const svindex;
    extern const function_base *const svinsr;
    extern const function_base *const svlasta;
    extern const function_base *const svlastb;
    extern const function_base *const svld1;
    extern const function_base *const svld1_gather;
    extern const function_base *const svld1ro;
    extern const function_base *const svld1rq;
    extern const function_base *const svld1sb;
    extern const function_base *const svld1sb_gather;
    extern const function_base *const svld1sh;
    extern const function_base *const svld1sh_gather;
    extern const function_base *const svld1sw;
    extern const function_base *const svld1sw_gather;
    extern const function_base *const svld1ub;
    extern const function_base *const svld1ub_gather;
    extern const function_base *const svld1uh;
    extern const function_base *const svld1uh_gather;
    extern const function_base *const svld1uw;
    extern const function_base *const svld1uw_gather;
    extern const function_base *const svld2;
    extern const function_base *const svld3;
    extern const function_base *const svld4;
    extern const function_base *const svldff1;
    extern const function_base *const svldff1_gather;
    extern const function_base *const svldff1sb;
    extern const function_base *const svldff1sb_gather;
    extern const function_base *const svldff1sh;
    extern const function_base *const svldff1sh_gather;
    extern const function_base *const svldff1sw;
    extern const function_base *const svldff1sw_gather;
    extern const function_base *const svldff1ub;
    extern const function_base *const svldff1ub_gather;
    extern const function_base *const svldff1uh;
    extern const function_base *const svldff1uh_gather;
    extern const function_base *const svldff1uw;
    extern const function_base *const svldff1uw_gather;
    extern const function_base *const svldnf1;
    extern const function_base *const svldnf1sb;
    extern const function_base *const svldnf1sh;
    extern const function_base *const svldnf1sw;
    extern const function_base *const svldnf1ub;
    extern const function_base *const svldnf1uh;
    extern const function_base *const svldnf1uw;
    extern const function_base *const svldnt1;
    extern const function_base *const svlen;
    extern const function_base *const svlsl;
    extern const function_base *const svlsl_wide;
    extern const function_base *const svlsr;
    extern const function_base *const svlsr_wide;
    extern const function_base *const svmad;
    extern const function_base *const svmax;
    extern const function_base *const svmaxnm;
    extern const function_base *const svmaxnmv;
    extern const function_base *const svmaxv;
    extern const function_base *const svmin;
    extern const function_base *const svminnm;
    extern const function_base *const svminnmv;
    extern const function_base *const svminv;
    extern const function_base *const svmla;
    extern const function_base *const svmla_lane;
    extern const function_base *const svmls;
    extern const function_base *const svmls_lane;
    extern const function_base *const svmmla;
    extern const function_base *const svmov;
    extern const function_base *const svmsb;
    extern const function_base *const svmul;
    extern const function_base *const svmul_lane;
    extern const function_base *const svmulh;
    extern const function_base *const svmulx;
    extern const function_base *const svnand;
    extern const function_base *const svneg;
    extern const function_base *const svnmad;
    extern const function_base *const svnmla;
    extern const function_base *const svnmls;
    extern const function_base *const svnmsb;
    extern const function_base *const svnor;
    extern const function_base *const svnot;
    extern const function_base *const svorn;
    extern const function_base *const svorr;
    extern const function_base *const svorv;
    extern const function_base *const svpfalse;
    extern const function_base *const svpfirst;
    extern const function_base *const svpnext;
    extern const function_base *const svprfb;
    extern const function_base *const svprfb_gather;
    extern const function_base *const svprfd;
    extern const function_base *const svprfd_gather;
    extern const function_base *const svprfh;
    extern const function_base *const svprfh_gather;
    extern const function_base *const svprfw;
    extern const function_base *const svprfw_gather;
    extern const function_base *const svptest_any;
    extern const function_base *const svptest_first;
    extern const function_base *const svptest_last;
    extern const function_base *const svptrue;
    extern const function_base *const svptrue_pat;
    extern const function_base *const svqadd;
    extern const function_base *const svqdecb;
    extern const function_base *const svqdecb_pat;
    extern const function_base *const svqdecd;
    extern const function_base *const svqdecd_pat;
    extern const function_base *const svqdech;
    extern const function_base *const svqdech_pat;
    extern const function_base *const svqdecp;
    extern const function_base *const svqdecw;
    extern const function_base *const svqdecw_pat;
    extern const function_base *const svqincb;
    extern const function_base *const svqincb_pat;
    extern const function_base *const svqincd;
    extern const function_base *const svqincd_pat;
    extern const function_base *const svqinch;
    extern const function_base *const svqinch_pat;
    extern const function_base *const svqincp;
    extern const function_base *const svqincw;
    extern const function_base *const svqincw_pat;
    extern const function_base *const svqsub;
    extern const function_base *const svrbit;
    extern const function_base *const svrdffr;
    extern const function_base *const svrecpe;
    extern const function_base *const svrecps;
    extern const function_base *const svrecpx;
    extern const function_base *const svreinterpret;
    extern const function_base *const svrev;
    extern const function_base *const svrevb;
    extern const function_base *const svrevh;
    extern const function_base *const svrevw;
    extern const function_base *const svrinta;
    extern const function_base *const svrinti;
    extern const function_base *const svrintm;
    extern const function_base *const svrintn;
    extern const function_base *const svrintp;
    extern const function_base *const svrintx;
    extern const function_base *const svrintz;
    extern const function_base *const svrsqrte;
    extern const function_base *const svrsqrts;
    extern const function_base *const svscale;
    extern const function_base *const svsel;
    extern const function_base *const svset2;
    extern const function_base *const svset3;
    extern const function_base *const svset4;
    extern const function_base *const svsetffr;
    extern const function_base *const svsplice;
    extern const function_base *const svsqrt;
    extern const function_base *const svst1;
    extern const function_base *const svst1_scatter;
    extern const function_base *const svst1b;
    extern const function_base *const svst1b_scatter;
    extern const function_base *const svst1h;
    extern const function_base *const svst1h_scatter;
    extern const function_base *const svst1w;
    extern const function_base *const svst1w_scatter;
    extern const function_base *const svst2;
    extern const function_base *const svst3;
    extern const function_base *const svst4;
    extern const function_base *const svstnt1;
    extern const function_base *const svsub;
    extern const function_base *const svsubr;
    extern const function_base *const svsudot;
    extern const function_base *const svsudot_lane;
    extern const function_base *const svtbl;
    extern const function_base *const svtmad;
    extern const function_base *const svtrn1;
    extern const function_base *const svtrn1q;
    extern const function_base *const svtrn2;
    extern const function_base *const svtrn2q;
    extern const function_base *const svtsmul;
    extern const function_base *const svtssel;
    extern const function_base *const svundef;
    extern const function_base *const svundef2;
    extern const function_base *const svundef3;
    extern const function_base *const svundef4;
    extern const function_base *const svunpkhi;
    extern const function_base *const svunpklo;
    extern const function_base *const svusdot;
    extern const function_base *const svusdot_lane;
    extern const function_base *const svusmmla;
    extern const function_base *const svuzp1;
    extern const function_base *const svuzp1q;
    extern const function_base *const svuzp2;
    extern const function_base *const svuzp2q;
    extern const function_base *const svwhilele;
    extern const function_base *const svwhilelt;
    extern const function_base *const svwrffr;
    extern const function_base *const svzip1;
    extern const function_base *const svzip1q;
    extern const function_base *const svzip2;
    extern const function_base *const svzip2q;
  }
}

#endif