]>
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; | |
124 | extern const function_base *const vnclip; | |
125 | extern const function_base *const vnclipu; | |
126 | extern const function_base *const vnclipu; | |
f56d48b2 JZZ |
127 | } |
128 | ||
129 | } // end namespace riscv_vector | |
130 | ||
131 | #endif |