]>
Commit | Line | Data |
---|---|---|
f56d48b2 | 1 | /* function_base declaration for RISC-V 'V' Extension for GNU compiler. |
83ffe9cd | 2 | Copyright (C) 2022-2023 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 JZZ |
166 | extern const function_base *const vfmadd; |
167 | extern const function_base *const vfnmsub; | |
168 | extern const function_base *const vfnmacc; | |
6176527a | 169 | extern const function_base *const vfnmacc_frm; |
dc244cdc | 170 | extern const function_base *const vfmsac; |
ee8a844d | 171 | extern const function_base *const vfmsac_frm; |
dc244cdc JZZ |
172 | extern const function_base *const vfnmadd; |
173 | extern const function_base *const vfmsub; | |
174 | extern const function_base *const vfwmacc; | |
175 | extern const function_base *const vfwnmacc; | |
176 | extern const function_base *const vfwmsac; | |
177 | extern const function_base *const vfwnmsac; | |
178 | extern const function_base *const vfsqrt; | |
179 | extern const function_base *const vfrsqrt7; | |
180 | extern const function_base *const vfrec7; | |
181 | extern const function_base *const vfmin; | |
182 | extern const function_base *const vfmax; | |
183 | extern const function_base *const vfsgnj; | |
184 | extern const function_base *const vfsgnjn; | |
185 | extern const function_base *const vfsgnjx; | |
186 | extern const function_base *const vfneg; | |
187 | extern const function_base *const vfabs; | |
188 | extern const function_base *const vmfeq; | |
189 | extern const function_base *const vmfne; | |
190 | extern const function_base *const vmflt; | |
191 | extern const function_base *const vmfgt; | |
192 | extern const function_base *const vmfle; | |
193 | extern const function_base *const vmfge; | |
194 | extern const function_base *const vfclass; | |
195 | extern const function_base *const vfmerge; | |
196 | extern const function_base *const vfmv_v; | |
197 | extern const function_base *const vfcvt_x; | |
198 | extern const function_base *const vfcvt_xu; | |
199 | extern const function_base *const vfcvt_rtz_x; | |
200 | extern const function_base *const vfcvt_rtz_xu; | |
201 | extern const function_base *const vfcvt_f; | |
202 | extern const function_base *const vfwcvt_x; | |
203 | extern const function_base *const vfwcvt_xu; | |
204 | extern const function_base *const vfwcvt_rtz_x; | |
205 | extern const function_base *const vfwcvt_rtz_xu; | |
206 | extern const function_base *const vfwcvt_f; | |
207 | extern const function_base *const vfncvt_x; | |
208 | extern const function_base *const vfncvt_xu; | |
209 | extern const function_base *const vfncvt_rtz_x; | |
210 | extern const function_base *const vfncvt_rtz_xu; | |
211 | extern const function_base *const vfncvt_f; | |
212 | extern const function_base *const vfncvt_rod_f; | |
c878c658 JZZ |
213 | extern const function_base *const vredsum; |
214 | extern const function_base *const vredmaxu; | |
215 | extern const function_base *const vredmax; | |
216 | extern const function_base *const vredminu; | |
217 | extern const function_base *const vredmin; | |
218 | extern const function_base *const vredand; | |
219 | extern const function_base *const vredor; | |
220 | extern const function_base *const vredxor; | |
221 | extern const function_base *const vwredsum; | |
222 | extern const function_base *const vwredsumu; | |
223 | extern const function_base *const vfredusum; | |
224 | extern const function_base *const vfredosum; | |
225 | extern const function_base *const vfredmax; | |
226 | extern const function_base *const vfredmin; | |
227 | extern const function_base *const vfwredosum; | |
228 | extern const function_base *const vfwredusum; | |
ec99ffab JZZ |
229 | extern const function_base *const vmv_x; |
230 | extern const function_base *const vmv_s; | |
231 | extern const function_base *const vfmv_f; | |
232 | extern const function_base *const vfmv_s; | |
1bff101b JZZ |
233 | extern const function_base *const vslideup; |
234 | extern const function_base *const vslidedown; | |
235 | extern const function_base *const vslide1up; | |
236 | extern const function_base *const vslide1down; | |
237 | extern const function_base *const vfslide1up; | |
238 | extern const function_base *const vfslide1down; | |
239 | extern const function_base *const vrgather; | |
240 | extern const function_base *const vrgatherei16; | |
241 | extern const function_base *const vcompress; | |
7caa1ae5 JZZ |
242 | extern const function_base *const vundefined; |
243 | extern const function_base *const vreinterpret; | |
244 | extern const function_base *const vlmul_ext; | |
245 | extern const function_base *const vlmul_trunc; | |
246 | extern const function_base *const vset; | |
247 | extern const function_base *const vget; | |
60bd33bc JZZ |
248 | extern const function_base *const read_vl; |
249 | extern const function_base *const vleff; | |
116a8678 | 250 | extern const function_base *const vlenb; |
6313b045 JZZ |
251 | extern const function_base *const vlseg; |
252 | extern const function_base *const vsseg; | |
253 | extern const function_base *const vlsseg; | |
254 | extern const function_base *const vssseg; | |
255 | extern const function_base *const vluxseg; | |
256 | extern const function_base *const vloxseg; | |
257 | extern const function_base *const vsuxseg; | |
258 | extern const function_base *const vsoxseg; | |
259 | extern const function_base *const vlsegff; | |
f56d48b2 JZZ |
260 | } |
261 | ||
262 | } // end namespace riscv_vector | |
263 | ||
264 | #endif |