]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/riscv/riscv-vector-builtins-bases.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / riscv / riscv-vector-builtins-bases.h
CommitLineData
f56d48b2 1/* function_base declaration for RISC-V 'V' Extension for GNU compiler.
a945c346 2 Copyright (C) 2022-2024 Free Software Foundation, Inc.
f56d48b2
JZZ
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
24namespace riscv_vector {
25
26namespace bases {
27extern const function_base *const vsetvl;
28extern const function_base *const vsetvlmax;
a143c3f7
JZZ
29extern const function_base *const vle;
30extern const function_base *const vse;
ab39fa8c
JZZ
31extern const function_base *const vlm;
32extern const function_base *const vsm;
eb1c2960
JZZ
33extern const function_base *const vlse;
34extern const function_base *const vsse;
6c9bcb6c
JZZ
35extern const function_base *const vluxei8;
36extern const function_base *const vluxei16;
37extern const function_base *const vluxei32;
38extern const function_base *const vluxei64;
39extern const function_base *const vloxei8;
40extern const function_base *const vloxei16;
41extern const function_base *const vloxei32;
42extern const function_base *const vloxei64;
43extern const function_base *const vsuxei8;
44extern const function_base *const vsuxei16;
45extern const function_base *const vsuxei32;
46extern const function_base *const vsuxei64;
47extern const function_base *const vsoxei8;
48extern const function_base *const vsoxei16;
49extern const function_base *const vsoxei32;
50extern const function_base *const vsoxei64;
2a937fb5
JZZ
51extern const function_base *const vadd;
52extern const function_base *const vsub;
a035d133 53extern const function_base *const vrsub;
2a937fb5
JZZ
54extern const function_base *const vand;
55extern const function_base *const vor;
56extern const function_base *const vxor;
57extern const function_base *const vsll;
58extern const function_base *const vsra;
59extern const function_base *const vsrl;
60extern const function_base *const vmin;
61extern const function_base *const vmax;
62extern const function_base *const vminu;
63extern const function_base *const vmaxu;
64extern const function_base *const vmul;
8340bbad
JZZ
65extern const function_base *const vmulh;
66extern const function_base *const vmulhu;
67extern const function_base *const vmulhsu;
2a937fb5
JZZ
68extern const function_base *const vdiv;
69extern const function_base *const vrem;
70extern const function_base *const vdivu;
71extern const function_base *const vremu;
d7f8c79a
JZZ
72extern const function_base *const vneg;
73extern const function_base *const vnot;
99fa5d94
JZZ
74extern const function_base *const vsext;
75extern const function_base *const vzext;
a1e42094
JZZ
76extern const function_base *const vwadd;
77extern const function_base *const vwsub;
78extern const function_base *const vwmul;
79extern const function_base *const vwaddu;
80extern const function_base *const vwsubu;
81extern const function_base *const vwmulu;
82extern const function_base *const vwmulsu;
83extern const function_base *const vwcvt_x;
84extern const function_base *const vwcvtu_x;
cb44a16d
JZZ
85extern const function_base *const vadc;
86extern const function_base *const vsbc;
dca23bf0
JZZ
87extern const function_base *const vmadc;
88extern const function_base *const vmsbc;
6271a072
JZZ
89extern const function_base *const vnsrl;
90extern const function_base *const vnsra;
91extern const function_base *const vncvt_x;
92extern const function_base *const vmerge;
93extern const function_base *const vmv_v;
acb51b5c
JZZ
94extern const function_base *const vmseq;
95extern const function_base *const vmsne;
96extern const function_base *const vmslt;
97extern const function_base *const vmsgt;
98extern const function_base *const vmsle;
99extern const function_base *const vmsge;
100extern const function_base *const vmsltu;
101extern const function_base *const vmsgtu;
102extern const function_base *const vmsleu;
103extern const function_base *const vmsgeu;
272e119d
JZZ
104extern const function_base *const vmacc;
105extern const function_base *const vnmsac;
106extern const function_base *const vmadd;
107extern const function_base *const vnmsub;
108extern const function_base *const vwmacc;
109extern const function_base *const vwmaccu;
110extern const function_base *const vwmaccsu;
111extern const function_base *const vwmaccus;
7ad729a0
JZZ
112extern const function_base *const vsadd;
113extern const function_base *const vssub;
114extern const function_base *const vsaddu;
115extern const function_base *const vssubu;
e09418f2
JZZ
116extern const function_base *const vaadd;
117extern const function_base *const vasub;
118extern const function_base *const vaaddu;
119extern const function_base *const vasubu;
120extern const function_base *const vsmul;
121extern const function_base *const vssra;
122extern const function_base *const vssrl;
123extern const function_base *const vnclip;
e09418f2 124extern const function_base *const vnclipu;
1ed93bc7
JZZ
125extern const function_base *const vmand;
126extern const function_base *const vmnand;
127extern const function_base *const vmandn;
128extern const function_base *const vmxor;
129extern const function_base *const vmor;
130extern const function_base *const vmnor;
131extern const function_base *const vmorn;
132extern const function_base *const vmxnor;
133extern const function_base *const vmmv;
134extern const function_base *const vmclr;
135extern const function_base *const vmset;
136extern const function_base *const vmnot;
137extern const function_base *const vcpop;
138extern const function_base *const vfirst;
139extern const function_base *const vmsbf;
140extern const function_base *const vmsif;
141extern const function_base *const vmsof;
142extern const function_base *const viota;
143extern const function_base *const vid;
dc244cdc 144extern const function_base *const vfadd;
4d1e97f5 145extern const function_base *const vfadd_frm;
dc244cdc 146extern const function_base *const vfsub;
85699f1d 147extern const function_base *const vfsub_frm;
dc244cdc 148extern const function_base *const vfrsub;
85699f1d 149extern const function_base *const vfrsub_frm;
dc244cdc 150extern const function_base *const vfwadd;
21c28156 151extern const function_base *const vfwadd_frm;
dc244cdc 152extern const function_base *const vfwsub;
cba9db95 153extern const function_base *const vfwsub_frm;
dc244cdc 154extern const function_base *const vfmul;
37360008 155extern const function_base *const vfmul_frm;
dc244cdc 156extern const function_base *const vfdiv;
b7ab3938 157extern const function_base *const vfdiv_frm;
dc244cdc 158extern const function_base *const vfrdiv;
b7ab3938 159extern const function_base *const vfrdiv_frm;
dc244cdc 160extern const function_base *const vfwmul;
dd03fb99 161extern const function_base *const vfwmul_frm;
dc244cdc 162extern const function_base *const vfmacc;
07e93224 163extern const function_base *const vfmacc_frm;
dc244cdc 164extern const function_base *const vfnmsac;
cd9150e2 165extern const function_base *const vfnmsac_frm;
dc244cdc 166extern const function_base *const vfmadd;
797334e9 167extern const function_base *const vfmadd_frm;
dc244cdc 168extern const function_base *const vfnmsub;
4ecc1855 169extern const function_base *const vfnmsub_frm;
dc244cdc 170extern const function_base *const vfnmacc;
6176527a 171extern const function_base *const vfnmacc_frm;
dc244cdc 172extern const function_base *const vfmsac;
ee8a844d 173extern const function_base *const vfmsac_frm;
dc244cdc 174extern const function_base *const vfnmadd;
bcda361d 175extern const function_base *const vfnmadd_frm;
dc244cdc 176extern const function_base *const vfmsub;
6a8203b7 177extern const function_base *const vfmsub_frm;
dc244cdc 178extern const function_base *const vfwmacc;
d15840aa 179extern const function_base *const vfwmacc_frm;
dc244cdc 180extern const function_base *const vfwnmacc;
a6687359 181extern const function_base *const vfwnmacc_frm;
dc244cdc 182extern const function_base *const vfwmsac;
d9577b4b 183extern const function_base *const vfwmsac_frm;
dc244cdc 184extern const function_base *const vfwnmsac;
c944ded0 185extern const function_base *const vfwnmsac_frm;
dc244cdc 186extern const function_base *const vfsqrt;
9be93b80 187extern const function_base *const vfsqrt_frm;
dc244cdc
JZZ
188extern const function_base *const vfrsqrt7;
189extern const function_base *const vfrec7;
469711f0 190extern const function_base *const vfrec7_frm;
dc244cdc
JZZ
191extern const function_base *const vfmin;
192extern const function_base *const vfmax;
193extern const function_base *const vfsgnj;
194extern const function_base *const vfsgnjn;
195extern const function_base *const vfsgnjx;
196extern const function_base *const vfneg;
197extern const function_base *const vfabs;
198extern const function_base *const vmfeq;
199extern const function_base *const vmfne;
200extern const function_base *const vmflt;
201extern const function_base *const vmfgt;
202extern const function_base *const vmfle;
203extern const function_base *const vmfge;
204extern const function_base *const vfclass;
205extern const function_base *const vfmerge;
206extern const function_base *const vfmv_v;
207extern const function_base *const vfcvt_x;
c6f65ce9 208extern const function_base *const vfcvt_x_frm;
dc244cdc 209extern const function_base *const vfcvt_xu;
567258f0 210extern const function_base *const vfcvt_xu_frm;
dc244cdc
JZZ
211extern const function_base *const vfcvt_rtz_x;
212extern const function_base *const vfcvt_rtz_xu;
213extern const function_base *const vfcvt_f;
dc2529e8 214extern const function_base *const vfcvt_f_frm;
dc244cdc 215extern const function_base *const vfwcvt_x;
f2bec0ac 216extern const function_base *const vfwcvt_x_frm;
dc244cdc 217extern const function_base *const vfwcvt_xu;
1b7418ba 218extern const function_base *const vfwcvt_xu_frm;
dc244cdc
JZZ
219extern const function_base *const vfwcvt_rtz_x;
220extern const function_base *const vfwcvt_rtz_xu;
221extern const function_base *const vfwcvt_f;
222extern const function_base *const vfncvt_x;
3d18a528 223extern const function_base *const vfncvt_x_frm;
dc244cdc 224extern const function_base *const vfncvt_xu;
72fc7e9d 225extern const function_base *const vfncvt_xu_frm;
dc244cdc
JZZ
226extern const function_base *const vfncvt_rtz_x;
227extern const function_base *const vfncvt_rtz_xu;
228extern const function_base *const vfncvt_f;
20e1db41 229extern const function_base *const vfncvt_f_frm;
dc244cdc 230extern const function_base *const vfncvt_rod_f;
c878c658
JZZ
231extern const function_base *const vredsum;
232extern const function_base *const vredmaxu;
233extern const function_base *const vredmax;
234extern const function_base *const vredminu;
235extern const function_base *const vredmin;
236extern const function_base *const vredand;
237extern const function_base *const vredor;
238extern const function_base *const vredxor;
239extern const function_base *const vwredsum;
240extern const function_base *const vwredsumu;
241extern const function_base *const vfredusum;
3d903a26 242extern const function_base *const vfredusum_frm;
c878c658 243extern const function_base *const vfredosum;
3a68ef2c 244extern const function_base *const vfredosum_frm;
c878c658
JZZ
245extern const function_base *const vfredmax;
246extern const function_base *const vfredmin;
247extern const function_base *const vfwredosum;
c6259c49 248extern const function_base *const vfwredosum_frm;
c878c658 249extern const function_base *const vfwredusum;
1d17e3d6 250extern const function_base *const vfwredusum_frm;
ec99ffab
JZZ
251extern const function_base *const vmv_x;
252extern const function_base *const vmv_s;
253extern const function_base *const vfmv_f;
254extern const function_base *const vfmv_s;
1bff101b
JZZ
255extern const function_base *const vslideup;
256extern const function_base *const vslidedown;
257extern const function_base *const vslide1up;
258extern const function_base *const vslide1down;
259extern const function_base *const vfslide1up;
260extern const function_base *const vfslide1down;
261extern const function_base *const vrgather;
262extern const function_base *const vrgatherei16;
263extern const function_base *const vcompress;
7caa1ae5
JZZ
264extern const function_base *const vundefined;
265extern const function_base *const vreinterpret;
266extern const function_base *const vlmul_ext;
267extern const function_base *const vlmul_trunc;
268extern const function_base *const vset;
269extern const function_base *const vget;
c1e4efd8 270extern const function_base *const vcreate;
60bd33bc
JZZ
271extern const function_base *const read_vl;
272extern const function_base *const vleff;
116a8678 273extern const function_base *const vlenb;
6313b045
JZZ
274extern const function_base *const vlseg;
275extern const function_base *const vsseg;
276extern const function_base *const vlsseg;
277extern const function_base *const vssseg;
278extern const function_base *const vluxseg;
279extern const function_base *const vloxseg;
280extern const function_base *const vsuxseg;
281extern const function_base *const vsoxseg;
282extern const function_base *const vlsegff;
f56d48b2
JZZ
283}
284
285} // end namespace riscv_vector
286
287#endif