]>
Commit | Line | Data |
---|---|---|
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 | ||
24 | namespace riscv_vector { | |
25 | ||
26 | namespace bases { | |
27 | extern const function_base *const vsetvl; | |
28 | extern const function_base *const vsetvlmax; | |
a143c3f7 JZZ |
29 | extern const function_base *const vle; |
30 | extern const function_base *const vse; | |
ab39fa8c JZZ |
31 | extern const function_base *const vlm; |
32 | extern const function_base *const vsm; | |
eb1c2960 JZZ |
33 | extern const function_base *const vlse; |
34 | extern const function_base *const vsse; | |
6c9bcb6c JZZ |
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; | |
2a937fb5 JZZ |
51 | extern const function_base *const vadd; |
52 | extern const function_base *const vsub; | |
a035d133 | 53 | extern const function_base *const vrsub; |
2a937fb5 JZZ |
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; | |
8340bbad JZZ |
65 | extern const function_base *const vmulh; |
66 | extern const function_base *const vmulhu; | |
67 | extern const function_base *const vmulhsu; | |
2a937fb5 JZZ |
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; | |
d7f8c79a JZZ |
72 | extern const function_base *const vneg; |
73 | extern const function_base *const vnot; | |
99fa5d94 JZZ |
74 | extern const function_base *const vsext; |
75 | extern const function_base *const vzext; | |
a1e42094 JZZ |
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; | |
cb44a16d JZZ |
85 | extern const function_base *const vadc; |
86 | extern const function_base *const vsbc; | |
dca23bf0 JZZ |
87 | extern const function_base *const vmadc; |
88 | extern const function_base *const vmsbc; | |
6271a072 JZZ |
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; | |
acb51b5c JZZ |
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; | |
272e119d JZZ |
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; | |
7ad729a0 JZZ |
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; | |
e09418f2 JZZ |
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; | |
e09418f2 | 124 | extern const function_base *const vnclipu; |
1ed93bc7 JZZ |
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; | |
dc244cdc | 144 | extern const function_base *const vfadd; |
4d1e97f5 | 145 | extern const function_base *const vfadd_frm; |
dc244cdc | 146 | extern const function_base *const vfsub; |
85699f1d | 147 | extern const function_base *const vfsub_frm; |
dc244cdc | 148 | extern const function_base *const vfrsub; |
85699f1d | 149 | extern const function_base *const vfrsub_frm; |
dc244cdc | 150 | extern const function_base *const vfwadd; |
21c28156 | 151 | extern const function_base *const vfwadd_frm; |
dc244cdc | 152 | extern const function_base *const vfwsub; |
cba9db95 | 153 | extern const function_base *const vfwsub_frm; |
dc244cdc | 154 | extern const function_base *const vfmul; |
37360008 | 155 | extern const function_base *const vfmul_frm; |
dc244cdc | 156 | extern const function_base *const vfdiv; |
b7ab3938 | 157 | extern const function_base *const vfdiv_frm; |
dc244cdc | 158 | extern const function_base *const vfrdiv; |
b7ab3938 | 159 | extern const function_base *const vfrdiv_frm; |
dc244cdc | 160 | extern const function_base *const vfwmul; |
dd03fb99 | 161 | extern const function_base *const vfwmul_frm; |
dc244cdc | 162 | extern const function_base *const vfmacc; |
07e93224 | 163 | extern const function_base *const vfmacc_frm; |
dc244cdc | 164 | extern const function_base *const vfnmsac; |
cd9150e2 | 165 | extern const function_base *const vfnmsac_frm; |
dc244cdc | 166 | extern const function_base *const vfmadd; |
797334e9 | 167 | extern const function_base *const vfmadd_frm; |
dc244cdc | 168 | extern const function_base *const vfnmsub; |
4ecc1855 | 169 | extern const function_base *const vfnmsub_frm; |
dc244cdc | 170 | extern const function_base *const vfnmacc; |
6176527a | 171 | extern const function_base *const vfnmacc_frm; |
dc244cdc | 172 | extern const function_base *const vfmsac; |
ee8a844d | 173 | extern const function_base *const vfmsac_frm; |
dc244cdc | 174 | extern const function_base *const vfnmadd; |
bcda361d | 175 | extern const function_base *const vfnmadd_frm; |
dc244cdc | 176 | extern const function_base *const vfmsub; |
6a8203b7 | 177 | extern const function_base *const vfmsub_frm; |
dc244cdc | 178 | extern const function_base *const vfwmacc; |
d15840aa | 179 | extern const function_base *const vfwmacc_frm; |
dc244cdc | 180 | extern const function_base *const vfwnmacc; |
a6687359 | 181 | extern const function_base *const vfwnmacc_frm; |
dc244cdc | 182 | extern const function_base *const vfwmsac; |
d9577b4b | 183 | extern const function_base *const vfwmsac_frm; |
dc244cdc | 184 | extern const function_base *const vfwnmsac; |
c944ded0 | 185 | extern const function_base *const vfwnmsac_frm; |
dc244cdc | 186 | extern const function_base *const vfsqrt; |
9be93b80 | 187 | extern const function_base *const vfsqrt_frm; |
dc244cdc JZZ |
188 | extern const function_base *const vfrsqrt7; |
189 | extern const function_base *const vfrec7; | |
469711f0 | 190 | extern const function_base *const vfrec7_frm; |
dc244cdc JZZ |
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; | |
c6f65ce9 | 208 | extern const function_base *const vfcvt_x_frm; |
dc244cdc | 209 | extern const function_base *const vfcvt_xu; |
567258f0 | 210 | extern const function_base *const vfcvt_xu_frm; |
dc244cdc JZZ |
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; | |
dc2529e8 | 214 | extern const function_base *const vfcvt_f_frm; |
dc244cdc | 215 | extern const function_base *const vfwcvt_x; |
f2bec0ac | 216 | extern const function_base *const vfwcvt_x_frm; |
dc244cdc | 217 | extern const function_base *const vfwcvt_xu; |
1b7418ba | 218 | extern const function_base *const vfwcvt_xu_frm; |
dc244cdc JZZ |
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; | |
3d18a528 | 223 | extern const function_base *const vfncvt_x_frm; |
dc244cdc | 224 | extern const function_base *const vfncvt_xu; |
72fc7e9d | 225 | extern const function_base *const vfncvt_xu_frm; |
dc244cdc JZZ |
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; | |
20e1db41 | 229 | extern const function_base *const vfncvt_f_frm; |
dc244cdc | 230 | extern const function_base *const vfncvt_rod_f; |
c878c658 JZZ |
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; | |
3d903a26 | 242 | extern const function_base *const vfredusum_frm; |
c878c658 | 243 | extern const function_base *const vfredosum; |
3a68ef2c | 244 | extern const function_base *const vfredosum_frm; |
c878c658 JZZ |
245 | extern const function_base *const vfredmax; |
246 | extern const function_base *const vfredmin; | |
247 | extern const function_base *const vfwredosum; | |
c6259c49 | 248 | extern const function_base *const vfwredosum_frm; |
c878c658 | 249 | extern const function_base *const vfwredusum; |
1d17e3d6 | 250 | extern const function_base *const vfwredusum_frm; |
ec99ffab JZZ |
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; | |
1bff101b JZZ |
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; | |
7caa1ae5 JZZ |
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; | |
c1e4efd8 | 270 | extern const function_base *const vcreate; |
60bd33bc JZZ |
271 | extern const function_base *const read_vl; |
272 | extern const function_base *const vleff; | |
116a8678 | 273 | extern const function_base *const vlenb; |
6313b045 JZZ |
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; | |
f56d48b2 JZZ |
283 | } |
284 | ||
285 | } // end namespace riscv_vector | |
286 | ||
287 | #endif |