]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/riscv/riscv-vector-builtins-bases.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / riscv / riscv-vector-builtins-bases.h
1 /* function_base declaration for RISC-V 'V' Extension for GNU compiler.
2 Copyright (C) 2022-2024 Free Software Foundation, Inc.
3 Contributed by Ju-Zhe Zhong (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.
4
5 This file is part of GCC.
6
7 GCC is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
10 any later version.
11
12 GCC is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
20
21 #ifndef GCC_RISCV_VECTOR_BUILTINS_BASES_H
22 #define GCC_RISCV_VECTOR_BUILTINS_BASES_H
23
24 namespace riscv_vector {
25
26 namespace bases {
27 extern const function_base *const vsetvl;
28 extern const function_base *const vsetvlmax;
29 extern const function_base *const vle;
30 extern const function_base *const vse;
31 extern const function_base *const vlm;
32 extern const function_base *const vsm;
33 extern const function_base *const vlse;
34 extern const function_base *const vsse;
35 extern const function_base *const vluxei8;
36 extern const function_base *const vluxei16;
37 extern const function_base *const vluxei32;
38 extern const function_base *const vluxei64;
39 extern const function_base *const vloxei8;
40 extern const function_base *const vloxei16;
41 extern const function_base *const vloxei32;
42 extern const function_base *const vloxei64;
43 extern const function_base *const vsuxei8;
44 extern const function_base *const vsuxei16;
45 extern const function_base *const vsuxei32;
46 extern const function_base *const vsuxei64;
47 extern const function_base *const vsoxei8;
48 extern const function_base *const vsoxei16;
49 extern const function_base *const vsoxei32;
50 extern const function_base *const vsoxei64;
51 extern const function_base *const vadd;
52 extern const function_base *const vsub;
53 extern const function_base *const vrsub;
54 extern const function_base *const vand;
55 extern const function_base *const vor;
56 extern const function_base *const vxor;
57 extern const function_base *const vsll;
58 extern const function_base *const vsra;
59 extern const function_base *const vsrl;
60 extern const function_base *const vmin;
61 extern const function_base *const vmax;
62 extern const function_base *const vminu;
63 extern const function_base *const vmaxu;
64 extern const function_base *const vmul;
65 extern const function_base *const vmulh;
66 extern const function_base *const vmulhu;
67 extern const function_base *const vmulhsu;
68 extern const function_base *const vdiv;
69 extern const function_base *const vrem;
70 extern const function_base *const vdivu;
71 extern const function_base *const vremu;
72 extern const function_base *const vneg;
73 extern const function_base *const vnot;
74 extern const function_base *const vsext;
75 extern const function_base *const vzext;
76 extern const function_base *const vwadd;
77 extern const function_base *const vwsub;
78 extern const function_base *const vwmul;
79 extern const function_base *const vwaddu;
80 extern const function_base *const vwsubu;
81 extern const function_base *const vwmulu;
82 extern const function_base *const vwmulsu;
83 extern const function_base *const vwcvt_x;
84 extern const function_base *const vwcvtu_x;
85 extern const function_base *const vadc;
86 extern const function_base *const vsbc;
87 extern const function_base *const vmadc;
88 extern const function_base *const vmsbc;
89 extern const function_base *const vnsrl;
90 extern const function_base *const vnsra;
91 extern const function_base *const vncvt_x;
92 extern const function_base *const vmerge;
93 extern const function_base *const vmv_v;
94 extern const function_base *const vmseq;
95 extern const function_base *const vmsne;
96 extern const function_base *const vmslt;
97 extern const function_base *const vmsgt;
98 extern const function_base *const vmsle;
99 extern const function_base *const vmsge;
100 extern const function_base *const vmsltu;
101 extern const function_base *const vmsgtu;
102 extern const function_base *const vmsleu;
103 extern const function_base *const vmsgeu;
104 extern const function_base *const vmacc;
105 extern const function_base *const vnmsac;
106 extern const function_base *const vmadd;
107 extern const function_base *const vnmsub;
108 extern const function_base *const vwmacc;
109 extern const function_base *const vwmaccu;
110 extern const function_base *const vwmaccsu;
111 extern const function_base *const vwmaccus;
112 extern const function_base *const vsadd;
113 extern const function_base *const vssub;
114 extern const function_base *const vsaddu;
115 extern const function_base *const vssubu;
116 extern const function_base *const vaadd;
117 extern const function_base *const vasub;
118 extern const function_base *const vaaddu;
119 extern const function_base *const vasubu;
120 extern const function_base *const vsmul;
121 extern const function_base *const vssra;
122 extern const function_base *const vssrl;
123 extern const function_base *const vnclip;
124 extern const function_base *const vnclipu;
125 extern const function_base *const vmand;
126 extern const function_base *const vmnand;
127 extern const function_base *const vmandn;
128 extern const function_base *const vmxor;
129 extern const function_base *const vmor;
130 extern const function_base *const vmnor;
131 extern const function_base *const vmorn;
132 extern const function_base *const vmxnor;
133 extern const function_base *const vmmv;
134 extern const function_base *const vmclr;
135 extern const function_base *const vmset;
136 extern const function_base *const vmnot;
137 extern const function_base *const vcpop;
138 extern const function_base *const vfirst;
139 extern const function_base *const vmsbf;
140 extern const function_base *const vmsif;
141 extern const function_base *const vmsof;
142 extern const function_base *const viota;
143 extern const function_base *const vid;
144 extern const function_base *const vfadd;
145 extern const function_base *const vfadd_frm;
146 extern const function_base *const vfsub;
147 extern const function_base *const vfsub_frm;
148 extern const function_base *const vfrsub;
149 extern const function_base *const vfrsub_frm;
150 extern const function_base *const vfwadd;
151 extern const function_base *const vfwadd_frm;
152 extern const function_base *const vfwsub;
153 extern const function_base *const vfwsub_frm;
154 extern const function_base *const vfmul;
155 extern const function_base *const vfmul_frm;
156 extern const function_base *const vfdiv;
157 extern const function_base *const vfdiv_frm;
158 extern const function_base *const vfrdiv;
159 extern const function_base *const vfrdiv_frm;
160 extern const function_base *const vfwmul;
161 extern const function_base *const vfwmul_frm;
162 extern const function_base *const vfmacc;
163 extern const function_base *const vfmacc_frm;
164 extern const function_base *const vfnmsac;
165 extern const function_base *const vfnmsac_frm;
166 extern const function_base *const vfmadd;
167 extern const function_base *const vfmadd_frm;
168 extern const function_base *const vfnmsub;
169 extern const function_base *const vfnmsub_frm;
170 extern const function_base *const vfnmacc;
171 extern const function_base *const vfnmacc_frm;
172 extern const function_base *const vfmsac;
173 extern const function_base *const vfmsac_frm;
174 extern const function_base *const vfnmadd;
175 extern const function_base *const vfnmadd_frm;
176 extern const function_base *const vfmsub;
177 extern const function_base *const vfmsub_frm;
178 extern const function_base *const vfwmacc;
179 extern const function_base *const vfwmacc_frm;
180 extern const function_base *const vfwnmacc;
181 extern const function_base *const vfwnmacc_frm;
182 extern const function_base *const vfwmsac;
183 extern const function_base *const vfwmsac_frm;
184 extern const function_base *const vfwnmsac;
185 extern const function_base *const vfwnmsac_frm;
186 extern const function_base *const vfsqrt;
187 extern const function_base *const vfsqrt_frm;
188 extern const function_base *const vfrsqrt7;
189 extern const function_base *const vfrec7;
190 extern const function_base *const vfrec7_frm;
191 extern const function_base *const vfmin;
192 extern const function_base *const vfmax;
193 extern const function_base *const vfsgnj;
194 extern const function_base *const vfsgnjn;
195 extern const function_base *const vfsgnjx;
196 extern const function_base *const vfneg;
197 extern const function_base *const vfabs;
198 extern const function_base *const vmfeq;
199 extern const function_base *const vmfne;
200 extern const function_base *const vmflt;
201 extern const function_base *const vmfgt;
202 extern const function_base *const vmfle;
203 extern const function_base *const vmfge;
204 extern const function_base *const vfclass;
205 extern const function_base *const vfmerge;
206 extern const function_base *const vfmv_v;
207 extern const function_base *const vfcvt_x;
208 extern const function_base *const vfcvt_x_frm;
209 extern const function_base *const vfcvt_xu;
210 extern const function_base *const vfcvt_xu_frm;
211 extern const function_base *const vfcvt_rtz_x;
212 extern const function_base *const vfcvt_rtz_xu;
213 extern const function_base *const vfcvt_f;
214 extern const function_base *const vfcvt_f_frm;
215 extern const function_base *const vfwcvt_x;
216 extern const function_base *const vfwcvt_x_frm;
217 extern const function_base *const vfwcvt_xu;
218 extern const function_base *const vfwcvt_xu_frm;
219 extern const function_base *const vfwcvt_rtz_x;
220 extern const function_base *const vfwcvt_rtz_xu;
221 extern const function_base *const vfwcvt_f;
222 extern const function_base *const vfncvt_x;
223 extern const function_base *const vfncvt_x_frm;
224 extern const function_base *const vfncvt_xu;
225 extern const function_base *const vfncvt_xu_frm;
226 extern const function_base *const vfncvt_rtz_x;
227 extern const function_base *const vfncvt_rtz_xu;
228 extern const function_base *const vfncvt_f;
229 extern const function_base *const vfncvt_f_frm;
230 extern const function_base *const vfncvt_rod_f;
231 extern const function_base *const vredsum;
232 extern const function_base *const vredmaxu;
233 extern const function_base *const vredmax;
234 extern const function_base *const vredminu;
235 extern const function_base *const vredmin;
236 extern const function_base *const vredand;
237 extern const function_base *const vredor;
238 extern const function_base *const vredxor;
239 extern const function_base *const vwredsum;
240 extern const function_base *const vwredsumu;
241 extern const function_base *const vfredusum;
242 extern const function_base *const vfredusum_frm;
243 extern const function_base *const vfredosum;
244 extern const function_base *const vfredosum_frm;
245 extern const function_base *const vfredmax;
246 extern const function_base *const vfredmin;
247 extern const function_base *const vfwredosum;
248 extern const function_base *const vfwredosum_frm;
249 extern const function_base *const vfwredusum;
250 extern const function_base *const vfwredusum_frm;
251 extern const function_base *const vmv_x;
252 extern const function_base *const vmv_s;
253 extern const function_base *const vfmv_f;
254 extern const function_base *const vfmv_s;
255 extern const function_base *const vslideup;
256 extern const function_base *const vslidedown;
257 extern const function_base *const vslide1up;
258 extern const function_base *const vslide1down;
259 extern const function_base *const vfslide1up;
260 extern const function_base *const vfslide1down;
261 extern const function_base *const vrgather;
262 extern const function_base *const vrgatherei16;
263 extern const function_base *const vcompress;
264 extern const function_base *const vundefined;
265 extern const function_base *const vreinterpret;
266 extern const function_base *const vlmul_ext;
267 extern const function_base *const vlmul_trunc;
268 extern const function_base *const vset;
269 extern const function_base *const vget;
270 extern const function_base *const vcreate;
271 extern const function_base *const read_vl;
272 extern const function_base *const vleff;
273 extern const function_base *const vlenb;
274 extern const function_base *const vlseg;
275 extern const function_base *const vsseg;
276 extern const function_base *const vlsseg;
277 extern const function_base *const vssseg;
278 extern const function_base *const vluxseg;
279 extern const function_base *const vloxseg;
280 extern const function_base *const vsuxseg;
281 extern const function_base *const vsoxseg;
282 extern const function_base *const vlsegff;
283 }
284
285 } // end namespace riscv_vector
286
287 #endif