1 /* Builtins macros 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.
5 This file is part of GCC.
7 GCC is free software
; you can redistribute it and
/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation
; either version
3, or (at your option
)
12 GCC is distributed in the hope that it will be useful
,
13 but WITHOUT ANY WARRANTY
; without even the implied warranty of
14 MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
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
/>.
*/
21 /* Use
"DEF_RVV_TYPE" macro to define RVV datatype builtins.
22 1.The
'NAME' argument is the name exposed to users.
23 For example
, "vint32m1_t".
24 2.The
'NCHARS' argument is the length of ABI
-name.
25 For example
, length of
"__rvv_int32m1_t" is
15.
26 3.The
'ABI_NAME' argument is the ABI
-name. For example
, "__rvv_int32m1_t".
27 4.The
'SCALAR_TYPE' argument is associated scalar type which is used in
28 "build_vector_type_for_mode". For
"vint32m1_t", we use
"intSI_type_node" in
29 RV64. Otherwise
, we use
"long_integer_type_node".
30 5.The
'VECTOR_MODE' is the machine modes of corresponding RVV type used
31 in
"build_vector_type_for_mode".
32 For example
: VECTOR_MODE
= RVVM1SImode for
"vint32m1_t".
33 6.The
'VECTOR_SUFFIX' define mode suffix for vector type.
34 For example
: type_suffixes
[VECTOR_TYPE_vin32m1_t
].vector
= i32m1.
35 7.The
'SCALAR_SUFFIX' define mode suffix for scalar type.
36 For example
: type_suffixes
[VECTOR_TYPE_vin32m1_t
].scalar
= i32.
37 8.The
'VSETVL_SUFFIX' define mode suffix for vsetvli instruction.
38 For example
: type_suffixes
[VECTOR_TYPE_vin32m1_t
].vsetvl
= e32m1.
42 #define
DEF_RVV_TYPE(NAME
, NCHARS
, ABI_NAME
, SCALAR_TYPE
, VECTOR_MODE
, \
43 VECTOR_SUFFIX
, SCALAR_SUFFIX
, VSETVL_SUFFIX
)
46 #ifndef DEF_RVV_TUPLE_TYPE
47 #define
DEF_RVV_TUPLE_TYPE(NAME
, NCHARS
, ABI_NAME
, SUBPART_TYPE
, SCALAR_TYPE
, \
51 /* Use
"DEF_RVV_OP_TYPE" macro to define RVV operand types.
52 The
'NAME' will be concatenated into intrinsic function name.
*/
53 #ifndef DEF_RVV_OP_TYPE
54 #define
DEF_RVV_OP_TYPE(NAME
)
57 /* Use
"DEF_RVV_PRED_TYPE" macro to define RVV predication types.
58 The
'NAME' will be concatenated into intrinsic function name.
*/
59 #ifndef DEF_RVV_PRED_TYPE
60 #define
DEF_RVV_PRED_TYPE(NAME
)
63 /* Use
"DEF_RVV_BASE_TYPE" macro to define RVV base types.
64 The
'NAME' will be concatenated into intrinsic function name.
*/
65 #ifndef DEF_RVV_BASE_TYPE
66 #define
DEF_RVV_BASE_TYPE(NAME
, TYPE)
69 /* Use
"DEF_RVV_TYPE_INDEX" macro to define RVV function types.
*/
70 #ifndef DEF_RVV_TYPE_INDEX
71 #define
DEF_RVV_TYPE_INDEX( \
72 VECTOR
, MASK
, SIGNED
, UNSIGNED
, EEW8_INDEX
, EEW16_INDEX
, EEW32_INDEX
, \
73 EEW64_INDEX
, SHIFT
, DOUBLE_TRUNC
, QUAD_TRUNC
, OCT_TRUNC
, \
74 DOUBLE_TRUNC_SCALAR
, DOUBLE_TRUNC_SIGNED
, DOUBLE_TRUNC_UNSIGNED
, \
75 DOUBLE_TRUNC_UNSIGNED_SCALAR
, DOUBLE_TRUNC_BFLOAT_SCALAR
, \
76 DOUBLE_TRUNC_BFLOAT
, DOUBLE_TRUNC_FLOAT
, FLOAT, LMUL1
, WLMUL1
, \
77 EEW8_INTERPRET
, EEW16_INTERPRET
, EEW32_INTERPRET
, EEW64_INTERPRET
, \
78 BOOL1_INTERPRET
, BOOL2_INTERPRET
, BOOL4_INTERPRET
, BOOL8_INTERPRET
, \
79 BOOL16_INTERPRET
, BOOL32_INTERPRET
, BOOL64_INTERPRET
, \
80 SIGNED_EEW8_LMUL1_INTERPRET
, SIGNED_EEW16_LMUL1_INTERPRET
, \
81 SIGNED_EEW32_LMUL1_INTERPRET
, SIGNED_EEW64_LMUL1_INTERPRET
, \
82 UNSIGNED_EEW8_LMUL1_INTERPRET
, UNSIGNED_EEW16_LMUL1_INTERPRET
, \
83 UNSIGNED_EEW32_LMUL1_INTERPRET
, UNSIGNED_EEW64_LMUL1_INTERPRET
, \
84 X2_VLMUL_EXT
, X4_VLMUL_EXT
, X8_VLMUL_EXT
, X16_VLMUL_EXT
, X32_VLMUL_EXT
, \
85 X64_VLMUL_EXT
, TUPLE_SUBPART
)
88 /* Define RVV_VXRM rounding mode enum for fixed
-point intrinsics.
*/
89 #ifndef DEF_RVV_VXRM_ENUM
90 #define
DEF_RVV_VXRM_ENUM(NAME
, VALUE
)
93 /* Define RVV_FRM rounding mode enum for floating
-point intrinsics.
*/
94 #ifndef DEF_RVV_FRM_ENUM
95 #define
DEF_RVV_FRM_ENUM(NAME
, VALUE
)
99 Only enable when TARGET_MIN_VLEN
> 32.
100 Machine mode
= RVVMF64BImode.
*/
101 DEF_RVV_TYPE (vbool64_t
, 14, __rvv_bool64_t
, boolean
, RVVMF64BI
, _b64
, , )
103 Machine mode
= RVVMF32BImode.
*/
104 DEF_RVV_TYPE (vbool32_t
, 14, __rvv_bool32_t
, boolean
, RVVMF32BI
, _b32
, , )
106 Machine mode
= RVVMF16BImode.
*/
107 DEF_RVV_TYPE (vbool16_t
, 14, __rvv_bool16_t
, boolean
, RVVMF16BI
, _b16
, , )
109 Machine mode
= RVVMF8BImode.
*/
110 DEF_RVV_TYPE (vbool8_t
, 13, __rvv_bool8_t
, boolean
, RVVMF8BI
, _b8
, , )
112 Machine mode
= RVVMF4BImode.
*/
113 DEF_RVV_TYPE (vbool4_t
, 13, __rvv_bool4_t
, boolean
, RVVMF4BI
, _b4
, , )
115 Machine mode
= RVVMF2BImode.
*/
116 DEF_RVV_TYPE (vbool2_t
, 13, __rvv_bool2_t
, boolean
, RVVMF2BI
, _b2
, , )
118 Machine mode
= RVVM1BImode.
*/
119 DEF_RVV_TYPE (vbool1_t
, 13, __rvv_bool1_t
, boolean
, RVVM1BI
, _b1
, , )
122 Only enable when TARGET_MIN_VLEN
> 32.
123 Machine mode
= RVVMF8QImode.
*/
124 DEF_RVV_TYPE (vint8mf8_t
, 15, __rvv_int8mf8_t
, int8
, RVVMF8QI
, _i8mf8
, _i8
,
126 DEF_RVV_TYPE (vuint8mf8_t
, 16, __rvv_uint8mf8_t
, uint8
, RVVMF8QI
, _u8mf8
, _u8
,
128 /* Define tuple types for SEW
= 8, LMUL
= MF8.
*/
129 DEF_RVV_TUPLE_TYPE (vint8mf8x2_t
, 17, __rvv_int8mf8x2_t
, vint8mf8_t
, int8
, 2, _i8mf8x2
)
130 DEF_RVV_TUPLE_TYPE (vuint8mf8x2_t
, 18, __rvv_uint8mf8x2_t
, vuint8mf8_t
, uint8
, 2, _u8mf8x2
)
131 DEF_RVV_TUPLE_TYPE (vint8mf8x3_t
, 17, __rvv_int8mf8x3_t
, vint8mf8_t
, int8
, 3, _i8mf8x3
)
132 DEF_RVV_TUPLE_TYPE (vuint8mf8x3_t
, 18, __rvv_uint8mf8x3_t
, vuint8mf8_t
, uint8
, 3, _u8mf8x3
)
133 DEF_RVV_TUPLE_TYPE (vint8mf8x4_t
, 17, __rvv_int8mf8x4_t
, vint8mf8_t
, int8
, 4, _i8mf8x4
)
134 DEF_RVV_TUPLE_TYPE (vuint8mf8x4_t
, 18, __rvv_uint8mf8x4_t
, vuint8mf8_t
, uint8
, 4, _u8mf8x4
)
135 DEF_RVV_TUPLE_TYPE (vint8mf8x5_t
, 17, __rvv_int8mf8x5_t
, vint8mf8_t
, int8
, 5, _i8mf8x5
)
136 DEF_RVV_TUPLE_TYPE (vuint8mf8x5_t
, 18, __rvv_uint8mf8x5_t
, vuint8mf8_t
, uint8
, 5, _u8mf8x5
)
137 DEF_RVV_TUPLE_TYPE (vint8mf8x6_t
, 17, __rvv_int8mf8x6_t
, vint8mf8_t
, int8
, 6, _i8mf8x6
)
138 DEF_RVV_TUPLE_TYPE (vuint8mf8x6_t
, 18, __rvv_uint8mf8x6_t
, vuint8mf8_t
, uint8
, 6, _u8mf8x6
)
139 DEF_RVV_TUPLE_TYPE (vint8mf8x7_t
, 17, __rvv_int8mf8x7_t
, vint8mf8_t
, int8
, 7, _i8mf8x7
)
140 DEF_RVV_TUPLE_TYPE (vuint8mf8x7_t
, 18, __rvv_uint8mf8x7_t
, vuint8mf8_t
, uint8
, 7, _u8mf8x7
)
141 DEF_RVV_TUPLE_TYPE (vint8mf8x8_t
, 17, __rvv_int8mf8x8_t
, vint8mf8_t
, int8
, 8, _i8mf8x8
)
142 DEF_RVV_TUPLE_TYPE (vuint8mf8x8_t
, 18, __rvv_uint8mf8x8_t
, vuint8mf8_t
, uint8
, 8, _u8mf8x8
)
144 Machine mode
= RVVMF4QImode.
*/
145 DEF_RVV_TYPE (vint8mf4_t
, 15, __rvv_int8mf4_t
, int8
, RVVMF4QI
, _i8mf4
, _i8
,
147 DEF_RVV_TYPE (vuint8mf4_t
, 16, __rvv_uint8mf4_t
, uint8
, RVVMF4QI
, _u8mf4
, _u8
,
149 /* Define tuple types for SEW
= 8, LMUL
= MF4.
*/
150 DEF_RVV_TUPLE_TYPE (vint8mf4x2_t
, 17, __rvv_int8mf4x2_t
, vint8mf4_t
, int8
, 2, _i8mf4x2
)
151 DEF_RVV_TUPLE_TYPE (vuint8mf4x2_t
, 18, __rvv_uint8mf4x2_t
, vuint8mf4_t
, uint8
, 2, _u8mf4x2
)
152 DEF_RVV_TUPLE_TYPE (vint8mf4x3_t
, 17, __rvv_int8mf4x3_t
, vint8mf4_t
, int8
, 3, _i8mf4x3
)
153 DEF_RVV_TUPLE_TYPE (vuint8mf4x3_t
, 18, __rvv_uint8mf4x3_t
, vuint8mf4_t
, uint8
, 3, _u8mf4x3
)
154 DEF_RVV_TUPLE_TYPE (vint8mf4x4_t
, 17, __rvv_int8mf4x4_t
, vint8mf4_t
, int8
, 4, _i8mf4x4
)
155 DEF_RVV_TUPLE_TYPE (vuint8mf4x4_t
, 18, __rvv_uint8mf4x4_t
, vuint8mf4_t
, uint8
, 4, _u8mf4x4
)
156 DEF_RVV_TUPLE_TYPE (vint8mf4x5_t
, 17, __rvv_int8mf4x5_t
, vint8mf4_t
, int8
, 5, _i8mf4x5
)
157 DEF_RVV_TUPLE_TYPE (vuint8mf4x5_t
, 18, __rvv_uint8mf4x5_t
, vuint8mf4_t
, uint8
, 5, _u8mf4x5
)
158 DEF_RVV_TUPLE_TYPE (vint8mf4x6_t
, 17, __rvv_int8mf4x6_t
, vint8mf4_t
, int8
, 6, _i8mf4x6
)
159 DEF_RVV_TUPLE_TYPE (vuint8mf4x6_t
, 18, __rvv_uint8mf4x6_t
, vuint8mf4_t
, uint8
, 6, _u8mf4x6
)
160 DEF_RVV_TUPLE_TYPE (vint8mf4x7_t
, 17, __rvv_int8mf4x7_t
, vint8mf4_t
, int8
, 7, _i8mf4x7
)
161 DEF_RVV_TUPLE_TYPE (vuint8mf4x7_t
, 18, __rvv_uint8mf4x7_t
, vuint8mf4_t
, uint8
, 7, _u8mf4x7
)
162 DEF_RVV_TUPLE_TYPE (vint8mf4x8_t
, 17, __rvv_int8mf4x8_t
, vint8mf4_t
, int8
, 8, _i8mf4x8
)
163 DEF_RVV_TUPLE_TYPE (vuint8mf4x8_t
, 18, __rvv_uint8mf4x8_t
, vuint8mf4_t
, uint8
, 8, _u8mf4x8
)
165 Machine mode
= RVVMF2QImode.
*/
166 DEF_RVV_TYPE (vint8mf2_t
, 15, __rvv_int8mf2_t
, int8
, RVVMF2QI
, _i8mf2
, _i8
,
168 DEF_RVV_TYPE (vuint8mf2_t
, 16, __rvv_uint8mf2_t
, uint8
, RVVMF2QI
, _u8mf2
, _u8
,
170 /* Define tuple types for SEW
= 8, LMUL
= MF2.
*/
171 DEF_RVV_TUPLE_TYPE (vint8mf2x2_t
, 17, __rvv_int8mf2x2_t
, vint8mf2_t
, int8
, 2, _i8mf2x2
)
172 DEF_RVV_TUPLE_TYPE (vuint8mf2x2_t
, 18, __rvv_uint8mf2x2_t
, vuint8mf2_t
, uint8
, 2, _u8mf2x2
)
173 DEF_RVV_TUPLE_TYPE (vint8mf2x3_t
, 17, __rvv_int8mf2x3_t
, vint8mf2_t
, int8
, 3, _i8mf2x3
)
174 DEF_RVV_TUPLE_TYPE (vuint8mf2x3_t
, 18, __rvv_uint8mf2x3_t
, vuint8mf2_t
, uint8
, 3, _u8mf2x3
)
175 DEF_RVV_TUPLE_TYPE (vint8mf2x4_t
, 17, __rvv_int8mf2x4_t
, vint8mf2_t
, int8
, 4, _i8mf2x4
)
176 DEF_RVV_TUPLE_TYPE (vuint8mf2x4_t
, 18, __rvv_uint8mf2x4_t
, vuint8mf2_t
, uint8
, 4, _u8mf2x4
)
177 DEF_RVV_TUPLE_TYPE (vint8mf2x5_t
, 17, __rvv_int8mf2x5_t
, vint8mf2_t
, int8
, 5, _i8mf2x5
)
178 DEF_RVV_TUPLE_TYPE (vuint8mf2x5_t
, 18, __rvv_uint8mf2x5_t
, vuint8mf2_t
, uint8
, 5, _u8mf2x5
)
179 DEF_RVV_TUPLE_TYPE (vint8mf2x6_t
, 17, __rvv_int8mf2x6_t
, vint8mf2_t
, int8
, 6, _i8mf2x6
)
180 DEF_RVV_TUPLE_TYPE (vuint8mf2x6_t
, 18, __rvv_uint8mf2x6_t
, vuint8mf2_t
, uint8
, 6, _u8mf2x6
)
181 DEF_RVV_TUPLE_TYPE (vint8mf2x7_t
, 17, __rvv_int8mf2x7_t
, vint8mf2_t
, int8
, 7, _i8mf2x7
)
182 DEF_RVV_TUPLE_TYPE (vuint8mf2x7_t
, 18, __rvv_uint8mf2x7_t
, vuint8mf2_t
, uint8
, 7, _u8mf2x7
)
183 DEF_RVV_TUPLE_TYPE (vint8mf2x8_t
, 17, __rvv_int8mf2x8_t
, vint8mf2_t
, int8
, 8, _i8mf2x8
)
184 DEF_RVV_TUPLE_TYPE (vuint8mf2x8_t
, 18, __rvv_uint8mf2x8_t
, vuint8mf2_t
, uint8
, 8, _u8mf2x8
)
186 Machine mode
= RVVM1QImode.
*/
187 DEF_RVV_TYPE (vint8m1_t
, 14, __rvv_int8m1_t
, int8
, RVVM1QI
, _i8m1
, _i8
, _e8m1
)
188 DEF_RVV_TYPE (vuint8m1_t
, 15, __rvv_uint8m1_t
, uint8
, RVVM1QI
, _u8m1
, _u8
,
190 /* Define tuple types for SEW
= 8, LMUL
= M1.
*/
191 DEF_RVV_TUPLE_TYPE (vint8m1x2_t
, 16, __rvv_int8m1x2_t
, vint8m1_t
, int8
, 2, _i8m1x2
)
192 DEF_RVV_TUPLE_TYPE (vuint8m1x2_t
, 17, __rvv_uint8m1x2_t
, vuint8m1_t
, uint8
, 2, _u8m1x2
)
193 DEF_RVV_TUPLE_TYPE (vint8m1x3_t
, 16, __rvv_int8m1x3_t
, vint8m1_t
, int8
, 3, _i8m1x3
)
194 DEF_RVV_TUPLE_TYPE (vuint8m1x3_t
, 17, __rvv_uint8m1x3_t
, vuint8m1_t
, uint8
, 3, _u8m1x3
)
195 DEF_RVV_TUPLE_TYPE (vint8m1x4_t
, 16, __rvv_int8m1x4_t
, vint8m1_t
, int8
, 4, _i8m1x4
)
196 DEF_RVV_TUPLE_TYPE (vuint8m1x4_t
, 17, __rvv_uint8m1x4_t
, vuint8m1_t
, uint8
, 4, _u8m1x4
)
197 DEF_RVV_TUPLE_TYPE (vint8m1x5_t
, 16, __rvv_int8m1x5_t
, vint8m1_t
, int8
, 5, _i8m1x5
)
198 DEF_RVV_TUPLE_TYPE (vuint8m1x5_t
, 17, __rvv_uint8m1x5_t
, vuint8m1_t
, uint8
, 5, _u8m1x5
)
199 DEF_RVV_TUPLE_TYPE (vint8m1x6_t
, 16, __rvv_int8m1x6_t
, vint8m1_t
, int8
, 6, _i8m1x6
)
200 DEF_RVV_TUPLE_TYPE (vuint8m1x6_t
, 17, __rvv_uint8m1x6_t
, vuint8m1_t
, uint8
, 6, _u8m1x6
)
201 DEF_RVV_TUPLE_TYPE (vint8m1x7_t
, 16, __rvv_int8m1x7_t
, vint8m1_t
, int8
, 7, _i8m1x7
)
202 DEF_RVV_TUPLE_TYPE (vuint8m1x7_t
, 17, __rvv_uint8m1x7_t
, vuint8m1_t
, uint8
, 7, _u8m1x7
)
203 DEF_RVV_TUPLE_TYPE (vint8m1x8_t
, 16, __rvv_int8m1x8_t
, vint8m1_t
, int8
, 8, _i8m1x8
)
204 DEF_RVV_TUPLE_TYPE (vuint8m1x8_t
, 17, __rvv_uint8m1x8_t
, vuint8m1_t
, uint8
, 8, _u8m1x8
)
206 Machine mode
= RVVM2QImode.
*/
207 DEF_RVV_TYPE (vint8m2_t
, 14, __rvv_int8m2_t
, int8
, RVVM2QI
, _i8m2
, _i8
, _e8m2
)
208 DEF_RVV_TYPE (vuint8m2_t
, 15, __rvv_uint8m2_t
, uint8
, RVVM2QI
, _u8m2
, _u8
,
210 /* Define tuple types for SEW
= 8, LMUL
= M2.
*/
211 DEF_RVV_TUPLE_TYPE (vint8m2x2_t
, 16, __rvv_int8m2x2_t
, vint8m2_t
, int8
, 2, _i8m2x2
)
212 DEF_RVV_TUPLE_TYPE (vuint8m2x2_t
, 17, __rvv_uint8m2x2_t
, vuint8m2_t
, uint8
, 2, _u8m2x2
)
213 DEF_RVV_TUPLE_TYPE (vint8m2x3_t
, 16, __rvv_int8m2x3_t
, vint8m2_t
, int8
, 3, _i8m2x3
)
214 DEF_RVV_TUPLE_TYPE (vuint8m2x3_t
, 17, __rvv_uint8m2x3_t
, vuint8m2_t
, uint8
, 3, _u8m2x3
)
215 DEF_RVV_TUPLE_TYPE (vint8m2x4_t
, 16, __rvv_int8m2x4_t
, vint8m2_t
, int8
, 4, _i8m2x4
)
216 DEF_RVV_TUPLE_TYPE (vuint8m2x4_t
, 17, __rvv_uint8m2x4_t
, vuint8m2_t
, uint8
, 4, _u8m2x4
)
218 Machine mode
= RVVM4QImode.
*/
219 DEF_RVV_TYPE (vint8m4_t
, 14, __rvv_int8m4_t
, int8
, RVVM4QI
, _i8m4
, _i8
, _e8m4
)
220 DEF_RVV_TYPE (vuint8m4_t
, 15, __rvv_uint8m4_t
, uint8
, RVVM4QI
, _u8m4
, _u8
,
222 /* Define tuple types for SEW
= 8, LMUL
= M4.
*/
223 DEF_RVV_TUPLE_TYPE (vint8m4x2_t
, 16, __rvv_int8m4x2_t
, vint8m4_t
, int8
, 2, _i8m4x2
)
224 DEF_RVV_TUPLE_TYPE (vuint8m4x2_t
, 17, __rvv_uint8m4x2_t
, vuint8m4_t
, uint8
, 2, _u8m4x2
)
226 Machine mode
= RVVM8QImode.
*/
227 DEF_RVV_TYPE (vint8m8_t
, 14, __rvv_int8m8_t
, int8
, RVVM8QI
, _i8m8
, _i8
, _e8m8
)
228 DEF_RVV_TYPE (vuint8m8_t
, 15, __rvv_uint8m8_t
, uint8
, RVVM8QI
, _u8m8
, _u8
,
232 Only enable when TARGET_MIN_VLEN
> 32.
233 Machine mode
= RVVMF4HImode.
*/
234 DEF_RVV_TYPE (vint16mf4_t
, 16, __rvv_int16mf4_t
, int16
, RVVMF4HI
, _i16mf4
, _i16
,
236 DEF_RVV_TYPE (vuint16mf4_t
, 17, __rvv_uint16mf4_t
, uint16
, RVVMF4HI
, _u16mf4
,
238 /* Define tuple types for SEW
= 16, LMUL
= MF4.
*/
239 DEF_RVV_TUPLE_TYPE (vint16mf4x2_t
, 18, __rvv_int16mf4x2_t
, vint16mf4_t
, int16
, 2, _i16mf4x2
)
240 DEF_RVV_TUPLE_TYPE (vuint16mf4x2_t
, 19, __rvv_uint16mf4x2_t
, vuint16mf4_t
, uint16
, 2, _u16mf4x2
)
241 DEF_RVV_TUPLE_TYPE (vint16mf4x3_t
, 18, __rvv_int16mf4x3_t
, vint16mf4_t
, int16
, 3, _i16mf4x3
)
242 DEF_RVV_TUPLE_TYPE (vuint16mf4x3_t
, 19, __rvv_uint16mf4x3_t
, vuint16mf4_t
, uint16
, 3, _u16mf4x3
)
243 DEF_RVV_TUPLE_TYPE (vint16mf4x4_t
, 18, __rvv_int16mf4x4_t
, vint16mf4_t
, int16
, 4, _i16mf4x4
)
244 DEF_RVV_TUPLE_TYPE (vuint16mf4x4_t
, 19, __rvv_uint16mf4x4_t
, vuint16mf4_t
, uint16
, 4, _u16mf4x4
)
245 DEF_RVV_TUPLE_TYPE (vint16mf4x5_t
, 18, __rvv_int16mf4x5_t
, vint16mf4_t
, int16
, 5, _i16mf4x5
)
246 DEF_RVV_TUPLE_TYPE (vuint16mf4x5_t
, 19, __rvv_uint16mf4x5_t
, vuint16mf4_t
, uint16
, 5, _u16mf4x5
)
247 DEF_RVV_TUPLE_TYPE (vint16mf4x6_t
, 18, __rvv_int16mf4x6_t
, vint16mf4_t
, int16
, 6, _i16mf4x6
)
248 DEF_RVV_TUPLE_TYPE (vuint16mf4x6_t
, 19, __rvv_uint16mf4x6_t
, vuint16mf4_t
, uint16
, 6, _u16mf4x6
)
249 DEF_RVV_TUPLE_TYPE (vint16mf4x7_t
, 18, __rvv_int16mf4x7_t
, vint16mf4_t
, int16
, 7, _i16mf4x7
)
250 DEF_RVV_TUPLE_TYPE (vuint16mf4x7_t
, 19, __rvv_uint16mf4x7_t
, vuint16mf4_t
, uint16
, 7, _u16mf4x7
)
251 DEF_RVV_TUPLE_TYPE (vint16mf4x8_t
, 18, __rvv_int16mf4x8_t
, vint16mf4_t
, int16
, 8, _i16mf4x8
)
252 DEF_RVV_TUPLE_TYPE (vuint16mf4x8_t
, 19, __rvv_uint16mf4x8_t
, vuint16mf4_t
, uint16
, 8, _u16mf4x8
)
254 Machine mode
= RVVMF2HImode.
*/
255 DEF_RVV_TYPE (vint16mf2_t
, 16, __rvv_int16mf2_t
, int16
, RVVMF2HI
, _i16mf2
, _i16
,
257 DEF_RVV_TYPE (vuint16mf2_t
, 17, __rvv_uint16mf2_t
, uint16
, RVVMF2HI
, _u16mf2
,
259 /* Define tuple types for SEW
= 16, LMUL
= MF2.
*/
260 DEF_RVV_TUPLE_TYPE (vint16mf2x2_t
, 18, __rvv_int16mf2x2_t
, vint16mf2_t
, int16
, 2, _i16mf2x2
)
261 DEF_RVV_TUPLE_TYPE (vuint16mf2x2_t
, 19, __rvv_uint16mf2x2_t
, vuint16mf2_t
, uint16
, 2, _u16mf2x2
)
262 DEF_RVV_TUPLE_TYPE (vint16mf2x3_t
, 18, __rvv_int16mf2x3_t
, vint16mf2_t
, int16
, 3, _i16mf2x3
)
263 DEF_RVV_TUPLE_TYPE (vuint16mf2x3_t
, 19, __rvv_uint16mf2x3_t
, vuint16mf2_t
, uint16
, 3, _u16mf2x3
)
264 DEF_RVV_TUPLE_TYPE (vint16mf2x4_t
, 18, __rvv_int16mf2x4_t
, vint16mf2_t
, int16
, 4, _i16mf2x4
)
265 DEF_RVV_TUPLE_TYPE (vuint16mf2x4_t
, 19, __rvv_uint16mf2x4_t
, vuint16mf2_t
, uint16
, 4, _u16mf2x4
)
266 DEF_RVV_TUPLE_TYPE (vint16mf2x5_t
, 18, __rvv_int16mf2x5_t
, vint16mf2_t
, int16
, 5, _i16mf2x5
)
267 DEF_RVV_TUPLE_TYPE (vuint16mf2x5_t
, 19, __rvv_uint16mf2x5_t
, vuint16mf2_t
, uint16
, 5, _u16mf2x5
)
268 DEF_RVV_TUPLE_TYPE (vint16mf2x6_t
, 18, __rvv_int16mf2x6_t
, vint16mf2_t
, int16
, 6, _i16mf2x6
)
269 DEF_RVV_TUPLE_TYPE (vuint16mf2x6_t
, 19, __rvv_uint16mf2x6_t
, vuint16mf2_t
, uint16
, 6, _u16mf2x6
)
270 DEF_RVV_TUPLE_TYPE (vint16mf2x7_t
, 18, __rvv_int16mf2x7_t
, vint16mf2_t
, int16
, 7, _i16mf2x7
)
271 DEF_RVV_TUPLE_TYPE (vuint16mf2x7_t
, 19, __rvv_uint16mf2x7_t
, vuint16mf2_t
, uint16
, 7, _u16mf2x7
)
272 DEF_RVV_TUPLE_TYPE (vint16mf2x8_t
, 18, __rvv_int16mf2x8_t
, vint16mf2_t
, int16
, 8, _i16mf2x8
)
273 DEF_RVV_TUPLE_TYPE (vuint16mf2x8_t
, 19, __rvv_uint16mf2x8_t
, vuint16mf2_t
, uint16
, 8, _u16mf2x8
)
275 Machine mode
= RVVM1HImode.
*/
276 DEF_RVV_TYPE (vint16m1_t
, 15, __rvv_int16m1_t
, int16
, RVVM1HI
, _i16m1
, _i16
,
278 DEF_RVV_TYPE (vuint16m1_t
, 16, __rvv_uint16m1_t
, uint16
, RVVM1HI
, _u16m1
, _u16
,
280 /* Define tuple types for SEW
= 16, LMUL
= M1.
*/
281 DEF_RVV_TUPLE_TYPE (vint16m1x2_t
, 17, __rvv_int16m1x2_t
, vint16m1_t
, int16
, 2, _i16m1x2
)
282 DEF_RVV_TUPLE_TYPE (vuint16m1x2_t
, 18, __rvv_uint16m1x2_t
, vuint16m1_t
, uint16
, 2, _u16m1x2
)
283 DEF_RVV_TUPLE_TYPE (vint16m1x3_t
, 17, __rvv_int16m1x3_t
, vint16m1_t
, int16
, 3, _i16m1x3
)
284 DEF_RVV_TUPLE_TYPE (vuint16m1x3_t
, 18, __rvv_uint16m1x3_t
, vuint16m1_t
, uint16
, 3, _u16m1x3
)
285 DEF_RVV_TUPLE_TYPE (vint16m1x4_t
, 17, __rvv_int16m1x4_t
, vint16m1_t
, int16
, 4, _i16m1x4
)
286 DEF_RVV_TUPLE_TYPE (vuint16m1x4_t
, 18, __rvv_uint16m1x4_t
, vuint16m1_t
, uint16
, 4, _u16m1x4
)
287 DEF_RVV_TUPLE_TYPE (vint16m1x5_t
, 17, __rvv_int16m1x5_t
, vint16m1_t
, int16
, 5, _i16m1x5
)
288 DEF_RVV_TUPLE_TYPE (vuint16m1x5_t
, 18, __rvv_uint16m1x5_t
, vuint16m1_t
, uint16
, 5, _u16m1x5
)
289 DEF_RVV_TUPLE_TYPE (vint16m1x6_t
, 17, __rvv_int16m1x6_t
, vint16m1_t
, int16
, 6, _i16m1x6
)
290 DEF_RVV_TUPLE_TYPE (vuint16m1x6_t
, 18, __rvv_uint16m1x6_t
, vuint16m1_t
, uint16
, 6, _u16m1x6
)
291 DEF_RVV_TUPLE_TYPE (vint16m1x7_t
, 17, __rvv_int16m1x7_t
, vint16m1_t
, int16
, 7, _i16m1x7
)
292 DEF_RVV_TUPLE_TYPE (vuint16m1x7_t
, 18, __rvv_uint16m1x7_t
, vuint16m1_t
, uint16
, 7, _u16m1x7
)
293 DEF_RVV_TUPLE_TYPE (vint16m1x8_t
, 17, __rvv_int16m1x8_t
, vint16m1_t
, int16
, 8, _i16m1x8
)
294 DEF_RVV_TUPLE_TYPE (vuint16m1x8_t
, 18, __rvv_uint16m1x8_t
, vuint16m1_t
, uint16
, 8, _u16m1x8
)
296 Machine mode
= RVVM1H2mode.
*/
297 DEF_RVV_TYPE (vint16m2_t
, 15, __rvv_int16m2_t
, int16
, RVVM2HI
, _i16m2
, _i16
,
299 DEF_RVV_TYPE (vuint16m2_t
, 16, __rvv_uint16m2_t
, uint16
, RVVM2HI
, _u16m2
, _u16
,
301 /* Define tuple types for SEW
= 16, LMUL
= M2.
*/
302 DEF_RVV_TUPLE_TYPE (vint16m2x2_t
, 17, __rvv_int16m2x2_t
, vint16m2_t
, int16
, 2, _i16m2x2
)
303 DEF_RVV_TUPLE_TYPE (vuint16m2x2_t
, 18, __rvv_uint16m2x2_t
, vuint16m2_t
, uint16
, 2, _u16m2x2
)
304 DEF_RVV_TUPLE_TYPE (vint16m2x3_t
, 17, __rvv_int16m2x3_t
, vint16m2_t
, int16
, 3, _i16m2x3
)
305 DEF_RVV_TUPLE_TYPE (vuint16m2x3_t
, 18, __rvv_uint16m2x3_t
, vuint16m2_t
, uint16
, 3, _u16m2x3
)
306 DEF_RVV_TUPLE_TYPE (vint16m2x4_t
, 17, __rvv_int16m2x4_t
, vint16m2_t
, int16
, 4, _i16m2x4
)
307 DEF_RVV_TUPLE_TYPE (vuint16m2x4_t
, 18, __rvv_uint16m2x4_t
, vuint16m2_t
, uint16
, 4, _u16m2x4
)
309 Machine mode
= RVVM4HImode.
*/
310 DEF_RVV_TYPE (vint16m4_t
, 15, __rvv_int16m4_t
, int16
, RVVM4HI
, _i16m4
, _i16
,
312 DEF_RVV_TYPE (vuint16m4_t
, 16, __rvv_uint16m4_t
, uint16
, RVVM4HI
, _u16m4
, _u16
,
314 /* Define tuple types for SEW
= 16, LMUL
= M4.
*/
315 DEF_RVV_TUPLE_TYPE (vint16m4x2_t
, 17, __rvv_int16m4x2_t
, vint16m4_t
, int16
, 2, _i16m4x2
)
316 DEF_RVV_TUPLE_TYPE (vuint16m4x2_t
, 18, __rvv_uint16m4x2_t
, vuint16m4_t
, uint16
, 2, _u16m4x2
)
318 Machine mode
= RVVM8HImode.
*/
319 DEF_RVV_TYPE (vint16m8_t
, 15, __rvv_int16m8_t
, int16
, RVVM8HI
, _i16m8
, _i16
,
321 DEF_RVV_TYPE (vuint16m8_t
, 16, __rvv_uint16m8_t
, uint16
, RVVM8HI
, _u16m8
, _u16
,
325 Only enable when TARGET_MIN_VLEN
> 32.
326 Machine mode
= RVVMF2SImode.
*/
327 DEF_RVV_TYPE (vint32mf2_t
, 16, __rvv_int32mf2_t
, int32
, RVVMF2SI
, _i32mf2
, _i32
,
329 DEF_RVV_TYPE (vuint32mf2_t
, 17, __rvv_uint32mf2_t
, uint32
, RVVMF2SI
, _u32mf2
,
331 /* Define tuple types for SEW
= 32, LMUL
= MF2.
*/
332 DEF_RVV_TUPLE_TYPE (vint32mf2x2_t
, 18, __rvv_int32mf2x2_t
, vint32mf2_t
, int32
, 2, _i32mf2x2
)
333 DEF_RVV_TUPLE_TYPE (vuint32mf2x2_t
, 19, __rvv_uint32mf2x2_t
, vuint32mf2_t
, uint32
, 2, _u32mf2x2
)
334 DEF_RVV_TUPLE_TYPE (vint32mf2x3_t
, 18, __rvv_int32mf2x3_t
, vint32mf2_t
, int32
, 3, _i32mf2x3
)
335 DEF_RVV_TUPLE_TYPE (vuint32mf2x3_t
, 19, __rvv_uint32mf2x3_t
, vuint32mf2_t
, uint32
, 3, _u32mf2x3
)
336 DEF_RVV_TUPLE_TYPE (vint32mf2x4_t
, 18, __rvv_int32mf2x4_t
, vint32mf2_t
, int32
, 4, _i32mf2x4
)
337 DEF_RVV_TUPLE_TYPE (vuint32mf2x4_t
, 19, __rvv_uint32mf2x4_t
, vuint32mf2_t
, uint32
, 4, _u32mf2x4
)
338 DEF_RVV_TUPLE_TYPE (vint32mf2x5_t
, 18, __rvv_int32mf2x5_t
, vint32mf2_t
, int32
, 5, _i32mf2x5
)
339 DEF_RVV_TUPLE_TYPE (vuint32mf2x5_t
, 19, __rvv_uint32mf2x5_t
, vuint32mf2_t
, uint32
, 5, _u32mf2x5
)
340 DEF_RVV_TUPLE_TYPE (vint32mf2x6_t
, 18, __rvv_int32mf2x6_t
, vint32mf2_t
, int32
, 6, _i32mf2x6
)
341 DEF_RVV_TUPLE_TYPE (vuint32mf2x6_t
, 19, __rvv_uint32mf2x6_t
, vuint32mf2_t
, uint32
, 6, _u32mf2x6
)
342 DEF_RVV_TUPLE_TYPE (vint32mf2x7_t
, 18, __rvv_int32mf2x7_t
, vint32mf2_t
, int32
, 7, _i32mf2x7
)
343 DEF_RVV_TUPLE_TYPE (vuint32mf2x7_t
, 19, __rvv_uint32mf2x7_t
, vuint32mf2_t
, uint32
, 7, _u32mf2x7
)
344 DEF_RVV_TUPLE_TYPE (vint32mf2x8_t
, 18, __rvv_int32mf2x8_t
, vint32mf2_t
, int32
, 8, _i32mf2x8
)
345 DEF_RVV_TUPLE_TYPE (vuint32mf2x8_t
, 19, __rvv_uint32mf2x8_t
, vuint32mf2_t
, uint32
, 8, _u32mf2x8
)
347 Machine mode
= RVVM1SImode.
*/
348 DEF_RVV_TYPE (vint32m1_t
, 15, __rvv_int32m1_t
, int32
, RVVM1SI
, _i32m1
, _i32
,
350 DEF_RVV_TYPE (vuint32m1_t
, 16, __rvv_uint32m1_t
, uint32
, RVVM1SI
, _u32m1
, _u32
,
352 /* Define tuple types for SEW
= 32, LMUL
= M1.
*/
353 DEF_RVV_TUPLE_TYPE (vint32m1x2_t
, 17, __rvv_int32m1x2_t
, vint32m1_t
, int32
, 2, _i32m1x2
)
354 DEF_RVV_TUPLE_TYPE (vuint32m1x2_t
, 18, __rvv_uint32m1x2_t
, vuint32m1_t
, uint32
, 2, _u32m1x2
)
355 DEF_RVV_TUPLE_TYPE (vint32m1x3_t
, 17, __rvv_int32m1x3_t
, vint32m1_t
, int32
, 3, _i32m1x3
)
356 DEF_RVV_TUPLE_TYPE (vuint32m1x3_t
, 18, __rvv_uint32m1x3_t
, vuint32m1_t
, uint32
, 3, _u32m1x3
)
357 DEF_RVV_TUPLE_TYPE (vint32m1x4_t
, 17, __rvv_int32m1x4_t
, vint32m1_t
, int32
, 4, _i32m1x4
)
358 DEF_RVV_TUPLE_TYPE (vuint32m1x4_t
, 18, __rvv_uint32m1x4_t
, vuint32m1_t
, uint32
, 4, _u32m1x4
)
359 DEF_RVV_TUPLE_TYPE (vint32m1x5_t
, 17, __rvv_int32m1x5_t
, vint32m1_t
, int32
, 5, _i32m1x5
)
360 DEF_RVV_TUPLE_TYPE (vuint32m1x5_t
, 18, __rvv_uint32m1x5_t
, vuint32m1_t
, uint32
, 5, _u32m1x5
)
361 DEF_RVV_TUPLE_TYPE (vint32m1x6_t
, 17, __rvv_int32m1x6_t
, vint32m1_t
, int32
, 6, _i32m1x6
)
362 DEF_RVV_TUPLE_TYPE (vuint32m1x6_t
, 18, __rvv_uint32m1x6_t
, vuint32m1_t
, uint32
, 6, _u32m1x6
)
363 DEF_RVV_TUPLE_TYPE (vint32m1x7_t
, 17, __rvv_int32m1x7_t
, vint32m1_t
, int32
, 7, _i32m1x7
)
364 DEF_RVV_TUPLE_TYPE (vuint32m1x7_t
, 18, __rvv_uint32m1x7_t
, vuint32m1_t
, uint32
, 7, _u32m1x7
)
365 DEF_RVV_TUPLE_TYPE (vint32m1x8_t
, 17, __rvv_int32m1x8_t
, vint32m1_t
, int32
, 8, _i32m1x8
)
366 DEF_RVV_TUPLE_TYPE (vuint32m1x8_t
, 18, __rvv_uint32m1x8_t
, vuint32m1_t
, uint32
, 8, _u32m1x8
)
368 Machine mode
= RVVM2SImode.
*/
369 DEF_RVV_TYPE (vint32m2_t
, 15, __rvv_int32m2_t
, int32
, RVVM2SI
, _i32m2
, _i32
,
371 DEF_RVV_TYPE (vuint32m2_t
, 16, __rvv_uint32m2_t
, uint32
, RVVM2SI
, _u32m2
, _u32
,
373 /* Define tuple types for SEW
= 32, LMUL
= M2.
*/
374 DEF_RVV_TUPLE_TYPE (vint32m2x2_t
, 17, __rvv_int32m2x2_t
, vint32m2_t
, int32
, 2, _i32m2x2
)
375 DEF_RVV_TUPLE_TYPE (vuint32m2x2_t
, 18, __rvv_uint32m2x2_t
, vuint32m2_t
, uint32
, 2, _u32m2x2
)
376 DEF_RVV_TUPLE_TYPE (vint32m2x3_t
, 17, __rvv_int32m2x3_t
, vint32m2_t
, int32
, 3, _i32m2x3
)
377 DEF_RVV_TUPLE_TYPE (vuint32m2x3_t
, 18, __rvv_uint32m2x3_t
, vuint32m2_t
, uint32
, 3, _u32m2x3
)
378 DEF_RVV_TUPLE_TYPE (vint32m2x4_t
, 17, __rvv_int32m2x4_t
, vint32m2_t
, int32
, 4, _i32m2x4
)
379 DEF_RVV_TUPLE_TYPE (vuint32m2x4_t
, 18, __rvv_uint32m2x4_t
, vuint32m2_t
, uint32
, 4, _u32m2x4
)
381 Machine mode
= RVVM4SImode.
*/
382 DEF_RVV_TYPE (vint32m4_t
, 15, __rvv_int32m4_t
, int32
, RVVM4SI
, _i32m4
, _i32
,
384 DEF_RVV_TYPE (vuint32m4_t
, 16, __rvv_uint32m4_t
, uint32
, RVVM4SI
, _u32m4
, _u32
,
386 /* Define tuple types for SEW
= 32, LMUL
= M4.
*/
387 DEF_RVV_TUPLE_TYPE (vint32m4x2_t
, 17, __rvv_int32m4x2_t
, vint32m4_t
, int32
, 2, _i32m4x2
)
388 DEF_RVV_TUPLE_TYPE (vuint32m4x2_t
, 18, __rvv_uint32m4x2_t
, vuint32m4_t
, uint32
, 2, _u32m4x2
)
390 Machine mode
= RVVM8SImode.
*/
391 DEF_RVV_TYPE (vint32m8_t
, 15, __rvv_int32m8_t
, int32
, RVVM8SI
, _i32m8
, _i32
,
393 DEF_RVV_TYPE (vuint32m8_t
, 16, __rvv_uint32m8_t
, uint32
, RVVM8SI
, _u32m8
, _u32
,
397 Disable when
!TARGET_VECTOR_ELEN_64.
*/
398 DEF_RVV_TYPE (vint64m1_t
, 15, __rvv_int64m1_t
, int64
, RVVM1DI
, _i64m1
, _i64
,
400 DEF_RVV_TYPE (vuint64m1_t
, 16, __rvv_uint64m1_t
, uint64
, RVVM1DI
, _u64m1
, _u64
,
402 /* Define tuple types for SEW
= 64, LMUL
= M1.
*/
403 DEF_RVV_TUPLE_TYPE (vint64m1x2_t
, 17, __rvv_int64m1x2_t
, vint64m1_t
, int64
, 2, _i64m1x2
)
404 DEF_RVV_TUPLE_TYPE (vuint64m1x2_t
, 18, __rvv_uint64m1x2_t
, vuint64m1_t
, uint64
, 2, _u64m1x2
)
405 DEF_RVV_TUPLE_TYPE (vint64m1x3_t
, 17, __rvv_int64m1x3_t
, vint64m1_t
, int64
, 3, _i64m1x3
)
406 DEF_RVV_TUPLE_TYPE (vuint64m1x3_t
, 18, __rvv_uint64m1x3_t
, vuint64m1_t
, uint64
, 3, _u64m1x3
)
407 DEF_RVV_TUPLE_TYPE (vint64m1x4_t
, 17, __rvv_int64m1x4_t
, vint64m1_t
, int64
, 4, _i64m1x4
)
408 DEF_RVV_TUPLE_TYPE (vuint64m1x4_t
, 18, __rvv_uint64m1x4_t
, vuint64m1_t
, uint64
, 4, _u64m1x4
)
409 DEF_RVV_TUPLE_TYPE (vint64m1x5_t
, 17, __rvv_int64m1x5_t
, vint64m1_t
, int64
, 5, _i64m1x5
)
410 DEF_RVV_TUPLE_TYPE (vuint64m1x5_t
, 18, __rvv_uint64m1x5_t
, vuint64m1_t
, uint64
, 5, _u64m1x5
)
411 DEF_RVV_TUPLE_TYPE (vint64m1x6_t
, 17, __rvv_int64m1x6_t
, vint64m1_t
, int64
, 6, _i64m1x6
)
412 DEF_RVV_TUPLE_TYPE (vuint64m1x6_t
, 18, __rvv_uint64m1x6_t
, vuint64m1_t
, uint64
, 6, _u64m1x6
)
413 DEF_RVV_TUPLE_TYPE (vint64m1x7_t
, 17, __rvv_int64m1x7_t
, vint64m1_t
, int64
, 7, _i64m1x7
)
414 DEF_RVV_TUPLE_TYPE (vuint64m1x7_t
, 18, __rvv_uint64m1x7_t
, vuint64m1_t
, uint64
, 7, _u64m1x7
)
415 DEF_RVV_TUPLE_TYPE (vint64m1x8_t
, 17, __rvv_int64m1x8_t
, vint64m1_t
, int64
, 8, _i64m1x8
)
416 DEF_RVV_TUPLE_TYPE (vuint64m1x8_t
, 18, __rvv_uint64m1x8_t
, vuint64m1_t
, uint64
, 8, _u64m1x8
)
417 DEF_RVV_TYPE (vint64m2_t
, 15, __rvv_int64m2_t
, int64
, RVVM2DI
, _i64m2
, _i64
,
419 DEF_RVV_TYPE (vuint64m2_t
, 16, __rvv_uint64m2_t
, uint64
, RVVM2DI
, _u64m2
, _u64
,
421 /* Define tuple types for SEW
= 64, LMUL
= M2.
*/
422 DEF_RVV_TUPLE_TYPE (vint64m2x2_t
, 17, __rvv_int64m2x2_t
, vint64m2_t
, int64
, 2, _i64m2x2
)
423 DEF_RVV_TUPLE_TYPE (vuint64m2x2_t
, 18, __rvv_uint64m2x2_t
, vuint64m2_t
, uint64
, 2, _u64m2x2
)
424 DEF_RVV_TUPLE_TYPE (vint64m2x3_t
, 17, __rvv_int64m2x3_t
, vint64m2_t
, int64
, 3, _i64m2x3
)
425 DEF_RVV_TUPLE_TYPE (vuint64m2x3_t
, 18, __rvv_uint64m2x3_t
, vuint64m2_t
, uint64
, 3, _u64m2x3
)
426 DEF_RVV_TUPLE_TYPE (vint64m2x4_t
, 17, __rvv_int64m2x4_t
, vint64m2_t
, int64
, 4, _i64m2x4
)
427 DEF_RVV_TUPLE_TYPE (vuint64m2x4_t
, 18, __rvv_uint64m2x4_t
, vuint64m2_t
, uint64
, 4, _u64m2x4
)
428 DEF_RVV_TYPE (vint64m4_t
, 15, __rvv_int64m4_t
, int64
, RVVM4DI
, _i64m4
, _i64
,
430 DEF_RVV_TYPE (vuint64m4_t
, 16, __rvv_uint64m4_t
, uint64
, RVVM4DI
, _u64m4
, _u64
,
432 /* Define tuple types for SEW
= 64, LMUL
= M4.
*/
433 DEF_RVV_TUPLE_TYPE (vint64m4x2_t
, 17, __rvv_int64m4x2_t
, vint64m4_t
, int64
, 2, _i64m4x2
)
434 DEF_RVV_TUPLE_TYPE (vuint64m4x2_t
, 18, __rvv_uint64m4x2_t
, vuint64m4_t
, uint64
, 2, _u64m4x2
)
435 DEF_RVV_TYPE (vint64m8_t
, 15, __rvv_int64m8_t
, int64
, RVVM8DI
, _i64m8
, _i64
,
437 DEF_RVV_TYPE (vuint64m8_t
, 16, __rvv_uint64m8_t
, uint64
, RVVM8DI
, _u64m8
, _u64
,
440 /* Enabled if TARGET_VECTOR_ELEN_BF_16
&& (TARGET_ZVFBFMIN or TARGET_ZVFBFWMA
).
*/
442 DEF_RVV_TYPE (vbfloat16mf4_t
, 19, __rvv_bfloat16mf4_t
, bfloat16
, RVVMF4BF
, _bf16mf4
,
444 /* Define tuple types for SEW
= 16, LMUL
= MF4.
*/
445 DEF_RVV_TUPLE_TYPE (vbfloat16mf4x2_t
, 21, __rvv_bfloat16mf4x2_t
, vbfloat16mf4_t
, bfloat16
, 2, _bf16mf4x2
)
446 DEF_RVV_TUPLE_TYPE (vbfloat16mf4x3_t
, 21, __rvv_bfloat16mf4x3_t
, vbfloat16mf4_t
, bfloat16
, 3, _bf16mf4x3
)
447 DEF_RVV_TUPLE_TYPE (vbfloat16mf4x4_t
, 21, __rvv_bfloat16mf4x4_t
, vbfloat16mf4_t
, bfloat16
, 4, _bf16mf4x4
)
448 DEF_RVV_TUPLE_TYPE (vbfloat16mf4x5_t
, 21, __rvv_bfloat16mf4x5_t
, vbfloat16mf4_t
, bfloat16
, 5, _bf16mf4x5
)
449 DEF_RVV_TUPLE_TYPE (vbfloat16mf4x6_t
, 21, __rvv_bfloat16mf4x6_t
, vbfloat16mf4_t
, bfloat16
, 6, _bf16mf4x6
)
450 DEF_RVV_TUPLE_TYPE (vbfloat16mf4x7_t
, 21, __rvv_bfloat16mf4x7_t
, vbfloat16mf4_t
, bfloat16
, 7, _bf16mf4x7
)
451 DEF_RVV_TUPLE_TYPE (vbfloat16mf4x8_t
, 21, __rvv_bfloat16mf4x8_t
, vbfloat16mf4_t
, bfloat16
, 8, _bf16mf4x8
)
453 DEF_RVV_TYPE (vbfloat16mf2_t
, 19, __rvv_bfloat16mf2_t
, bfloat16
, RVVMF2BF
, _bf16mf2
,
455 /* Define tuple types for SEW
= 16, LMUL
= MF2.
*/
456 DEF_RVV_TUPLE_TYPE (vbfloat16mf2x2_t
, 21, __rvv_bfloat16mf2x2_t
, vbfloat16mf2_t
, bfloat16
, 2, _bf16mf2x2
)
457 DEF_RVV_TUPLE_TYPE (vbfloat16mf2x3_t
, 21, __rvv_bfloat16mf2x3_t
, vbfloat16mf2_t
, bfloat16
, 3, _bf16mf2x3
)
458 DEF_RVV_TUPLE_TYPE (vbfloat16mf2x4_t
, 21, __rvv_bfloat16mf2x4_t
, vbfloat16mf2_t
, bfloat16
, 4, _bf16mf2x4
)
459 DEF_RVV_TUPLE_TYPE (vbfloat16mf2x5_t
, 21, __rvv_bfloat16mf2x5_t
, vbfloat16mf2_t
, bfloat16
, 5, _bf16mf2x5
)
460 DEF_RVV_TUPLE_TYPE (vbfloat16mf2x6_t
, 21, __rvv_bfloat16mf2x6_t
, vbfloat16mf2_t
, bfloat16
, 6, _bf16mf2x6
)
461 DEF_RVV_TUPLE_TYPE (vbfloat16mf2x7_t
, 21, __rvv_bfloat16mf2x7_t
, vbfloat16mf2_t
, bfloat16
, 7, _bf16mf2x7
)
462 DEF_RVV_TUPLE_TYPE (vbfloat16mf2x8_t
, 21, __rvv_bfloat16mf2x8_t
, vbfloat16mf2_t
, bfloat16
, 8, _bf16mf2x8
)
464 DEF_RVV_TYPE (vbfloat16m1_t
, 18, __rvv_bfloat16m1_t
, bfloat16
, RVVM1BF
, _bf16m1
,
466 /* Define tuple types for SEW
= 16, LMUL
= M1.
*/
467 DEF_RVV_TUPLE_TYPE (vbfloat16m1x2_t
, 20, __rvv_bfloat16m1x2_t
, vbfloat16m1_t
, bfloat16
, 2, _bf16m1x2
)
468 DEF_RVV_TUPLE_TYPE (vbfloat16m1x3_t
, 20, __rvv_bfloat16m1x3_t
, vbfloat16m1_t
, bfloat16
, 3, _bf16m1x3
)
469 DEF_RVV_TUPLE_TYPE (vbfloat16m1x4_t
, 20, __rvv_bfloat16m1x4_t
, vbfloat16m1_t
, bfloat16
, 4, _bf16m1x4
)
470 DEF_RVV_TUPLE_TYPE (vbfloat16m1x5_t
, 20, __rvv_bfloat16m1x5_t
, vbfloat16m1_t
, bfloat16
, 5, _bf16m1x5
)
471 DEF_RVV_TUPLE_TYPE (vbfloat16m1x6_t
, 20, __rvv_bfloat16m1x6_t
, vbfloat16m1_t
, bfloat16
, 6, _bf16m1x6
)
472 DEF_RVV_TUPLE_TYPE (vbfloat16m1x7_t
, 20, __rvv_bfloat16m1x7_t
, vbfloat16m1_t
, bfloat16
, 7, _bf16m1x7
)
473 DEF_RVV_TUPLE_TYPE (vbfloat16m1x8_t
, 20, __rvv_bfloat16m1x8_t
, vbfloat16m1_t
, bfloat16
, 8, _bf16m1x8
)
475 DEF_RVV_TYPE (vbfloat16m2_t
, 18, __rvv_bfloat16m2_t
, bfloat16
, RVVM2BF
, _bf16m2
,
477 /* Define tuple types for SEW
= 16, LMUL
= M2.
*/
478 DEF_RVV_TUPLE_TYPE (vbfloat16m2x2_t
, 20, __rvv_bfloat16m2x2_t
, vbfloat16m2_t
, bfloat16
, 2, _bf16m2x2
)
479 DEF_RVV_TUPLE_TYPE (vbfloat16m2x3_t
, 20, __rvv_bfloat16m2x3_t
, vbfloat16m2_t
, bfloat16
, 3, _bf16m2x3
)
480 DEF_RVV_TUPLE_TYPE (vbfloat16m2x4_t
, 20, __rvv_bfloat16m2x4_t
, vbfloat16m2_t
, bfloat16
, 4, _bf16m2x4
)
482 DEF_RVV_TYPE (vbfloat16m4_t
, 18, __rvv_bfloat16m4_t
, bfloat16
, RVVM4BF
, _bf16m4
,
484 /* Define tuple types for SEW
= 16, LMUL
= M4.
*/
485 DEF_RVV_TUPLE_TYPE (vbfloat16m4x2_t
, 20, __rvv_bfloat16m4x2_t
, vbfloat16m4_t
, bfloat16
, 2, _bf16m4x2
)
487 DEF_RVV_TYPE (vbfloat16m8_t
, 18, __rvv_bfloat16m8_t
, bfloat16
, RVVM8BF
, _bf16m8
,
490 /* Enabled if TARGET_VECTOR_ELEN_FP_16
&& (TARGET_ZVFH or TARGET_ZVFHMIN
).
*/
492 DEF_RVV_TYPE (vfloat16mf4_t
, 18, __rvv_float16mf4_t
, float16
, RVVMF4HF
, _f16mf4
,
494 /* Define tuple types for SEW
= 16, LMUL
= MF4.
*/
495 DEF_RVV_TUPLE_TYPE (vfloat16mf4x2_t
, 20, __rvv_float16mf4x2_t
, vfloat16mf4_t
, float16
, 2, _f16mf4x2
)
496 DEF_RVV_TUPLE_TYPE (vfloat16mf4x3_t
, 20, __rvv_float16mf4x3_t
, vfloat16mf4_t
, float16
, 3, _f16mf4x3
)
497 DEF_RVV_TUPLE_TYPE (vfloat16mf4x4_t
, 20, __rvv_float16mf4x4_t
, vfloat16mf4_t
, float16
, 4, _f16mf4x4
)
498 DEF_RVV_TUPLE_TYPE (vfloat16mf4x5_t
, 20, __rvv_float16mf4x5_t
, vfloat16mf4_t
, float16
, 5, _f16mf4x5
)
499 DEF_RVV_TUPLE_TYPE (vfloat16mf4x6_t
, 20, __rvv_float16mf4x6_t
, vfloat16mf4_t
, float16
, 6, _f16mf4x6
)
500 DEF_RVV_TUPLE_TYPE (vfloat16mf4x7_t
, 20, __rvv_float16mf4x7_t
, vfloat16mf4_t
, float16
, 7, _f16mf4x7
)
501 DEF_RVV_TUPLE_TYPE (vfloat16mf4x8_t
, 20, __rvv_float16mf4x8_t
, vfloat16mf4_t
, float16
, 8, _f16mf4x8
)
503 DEF_RVV_TYPE (vfloat16mf2_t
, 18, __rvv_float16mf2_t
, float16
, RVVMF2HF
, _f16mf2
,
505 /* Define tuple types for SEW
= 16, LMUL
= MF2.
*/
506 DEF_RVV_TUPLE_TYPE (vfloat16mf2x2_t
, 20, __rvv_float16mf2x2_t
, vfloat16mf2_t
, float16
, 2, _f16mf2x2
)
507 DEF_RVV_TUPLE_TYPE (vfloat16mf2x3_t
, 20, __rvv_float16mf2x3_t
, vfloat16mf2_t
, float16
, 3, _f16mf2x3
)
508 DEF_RVV_TUPLE_TYPE (vfloat16mf2x4_t
, 20, __rvv_float16mf2x4_t
, vfloat16mf2_t
, float16
, 4, _f16mf2x4
)
509 DEF_RVV_TUPLE_TYPE (vfloat16mf2x5_t
, 20, __rvv_float16mf2x5_t
, vfloat16mf2_t
, float16
, 5, _f16mf2x5
)
510 DEF_RVV_TUPLE_TYPE (vfloat16mf2x6_t
, 20, __rvv_float16mf2x6_t
, vfloat16mf2_t
, float16
, 6, _f16mf2x6
)
511 DEF_RVV_TUPLE_TYPE (vfloat16mf2x7_t
, 20, __rvv_float16mf2x7_t
, vfloat16mf2_t
, float16
, 7, _f16mf2x7
)
512 DEF_RVV_TUPLE_TYPE (vfloat16mf2x8_t
, 20, __rvv_float16mf2x8_t
, vfloat16mf2_t
, float16
, 8, _f16mf2x8
)
514 DEF_RVV_TYPE (vfloat16m1_t
, 17, __rvv_float16m1_t
, float16
, RVVM1HF
, _f16m1
,
516 /* Define tuple types for SEW
= 16, LMUL
= M1.
*/
517 DEF_RVV_TUPLE_TYPE (vfloat16m1x2_t
, 19, __rvv_float16m1x2_t
, vfloat16m1_t
, float16
, 2, _f16m1x2
)
518 DEF_RVV_TUPLE_TYPE (vfloat16m1x3_t
, 19, __rvv_float16m1x3_t
, vfloat16m1_t
, float16
, 3, _f16m1x3
)
519 DEF_RVV_TUPLE_TYPE (vfloat16m1x4_t
, 19, __rvv_float16m1x4_t
, vfloat16m1_t
, float16
, 4, _f16m1x4
)
520 DEF_RVV_TUPLE_TYPE (vfloat16m1x5_t
, 19, __rvv_float16m1x5_t
, vfloat16m1_t
, float16
, 5, _f16m1x5
)
521 DEF_RVV_TUPLE_TYPE (vfloat16m1x6_t
, 19, __rvv_float16m1x6_t
, vfloat16m1_t
, float16
, 6, _f16m1x6
)
522 DEF_RVV_TUPLE_TYPE (vfloat16m1x7_t
, 19, __rvv_float16m1x7_t
, vfloat16m1_t
, float16
, 7, _f16m1x7
)
523 DEF_RVV_TUPLE_TYPE (vfloat16m1x8_t
, 19, __rvv_float16m1x8_t
, vfloat16m1_t
, float16
, 8, _f16m1x8
)
525 DEF_RVV_TYPE (vfloat16m2_t
, 17, __rvv_float16m2_t
, float16
, RVVM2HF
, _f16m2
,
527 /* Define tuple types for SEW
= 16, LMUL
= M2.
*/
528 DEF_RVV_TUPLE_TYPE (vfloat16m2x2_t
, 19, __rvv_float16m2x2_t
, vfloat16m2_t
, float16
, 2, _f16m2x2
)
529 DEF_RVV_TUPLE_TYPE (vfloat16m2x3_t
, 19, __rvv_float16m2x3_t
, vfloat16m2_t
, float16
, 3, _f16m2x3
)
530 DEF_RVV_TUPLE_TYPE (vfloat16m2x4_t
, 19, __rvv_float16m2x4_t
, vfloat16m2_t
, float16
, 4, _f16m2x4
)
532 DEF_RVV_TYPE (vfloat16m4_t
, 17, __rvv_float16m4_t
, float16
, RVVM4HF
, _f16m4
,
534 /* Define tuple types for SEW
= 16, LMUL
= M4.
*/
535 DEF_RVV_TUPLE_TYPE (vfloat16m4x2_t
, 19, __rvv_float16m4x2_t
, vfloat16m4_t
, float16
, 2, _f16m4x2
)
537 DEF_RVV_TYPE (vfloat16m8_t
, 17, __rvv_float16m8_t
, float16
, RVVM8HF
, _f16m8
,
540 /* Disable all when
!TARGET_VECTOR_ELEN_FP_32.
*/
542 Only enable when TARGET_MIN_VLEN
> 32.
543 Machine mode
= RVVMF2SFmode.
*/
544 DEF_RVV_TYPE (vfloat32mf2_t
, 18, __rvv_float32mf2_t
, float
, RVVMF2SF
, _f32mf2
,
546 /* Define tuple types for SEW
= 32, LMUL
= MF2.
*/
547 DEF_RVV_TUPLE_TYPE (vfloat32mf2x2_t
, 20, __rvv_float32mf2x2_t
, vfloat32mf2_t
, float
, 2, _f32mf2x2
)
548 DEF_RVV_TUPLE_TYPE (vfloat32mf2x3_t
, 20, __rvv_float32mf2x3_t
, vfloat32mf2_t
, float
, 3, _f32mf2x3
)
549 DEF_RVV_TUPLE_TYPE (vfloat32mf2x4_t
, 20, __rvv_float32mf2x4_t
, vfloat32mf2_t
, float
, 4, _f32mf2x4
)
550 DEF_RVV_TUPLE_TYPE (vfloat32mf2x5_t
, 20, __rvv_float32mf2x5_t
, vfloat32mf2_t
, float
, 5, _f32mf2x5
)
551 DEF_RVV_TUPLE_TYPE (vfloat32mf2x6_t
, 20, __rvv_float32mf2x6_t
, vfloat32mf2_t
, float
, 6, _f32mf2x6
)
552 DEF_RVV_TUPLE_TYPE (vfloat32mf2x7_t
, 20, __rvv_float32mf2x7_t
, vfloat32mf2_t
, float
, 7, _f32mf2x7
)
553 DEF_RVV_TUPLE_TYPE (vfloat32mf2x8_t
, 20, __rvv_float32mf2x8_t
, vfloat32mf2_t
, float
, 8, _f32mf2x8
)
555 Machine mode
= RVVM1SFmode.
*/
556 DEF_RVV_TYPE (vfloat32m1_t
, 17, __rvv_float32m1_t
, float
, RVVM1SF
, _f32m1
, _f32
,
558 /* Define tuple types for SEW
= 32, LMUL
= M1.
*/
559 DEF_RVV_TUPLE_TYPE (vfloat32m1x2_t
, 19, __rvv_float32m1x2_t
, vfloat32m1_t
, float
, 2, _f32m1x2
)
560 DEF_RVV_TUPLE_TYPE (vfloat32m1x3_t
, 19, __rvv_float32m1x3_t
, vfloat32m1_t
, float
, 3, _f32m1x3
)
561 DEF_RVV_TUPLE_TYPE (vfloat32m1x4_t
, 19, __rvv_float32m1x4_t
, vfloat32m1_t
, float
, 4, _f32m1x4
)
562 DEF_RVV_TUPLE_TYPE (vfloat32m1x5_t
, 19, __rvv_float32m1x5_t
, vfloat32m1_t
, float
, 5, _f32m1x5
)
563 DEF_RVV_TUPLE_TYPE (vfloat32m1x6_t
, 19, __rvv_float32m1x6_t
, vfloat32m1_t
, float
, 6, _f32m1x6
)
564 DEF_RVV_TUPLE_TYPE (vfloat32m1x7_t
, 19, __rvv_float32m1x7_t
, vfloat32m1_t
, float
, 7, _f32m1x7
)
565 DEF_RVV_TUPLE_TYPE (vfloat32m1x8_t
, 19, __rvv_float32m1x8_t
, vfloat32m1_t
, float
, 8, _f32m1x8
)
567 Machine mode
= RVVM2SFmode.
*/
568 DEF_RVV_TYPE (vfloat32m2_t
, 17, __rvv_float32m2_t
, float
, RVVM2SF
, _f32m2
, _f32
,
570 /* Define tuple types for SEW
= 32, LMUL
= M2.
*/
571 DEF_RVV_TUPLE_TYPE (vfloat32m2x2_t
, 19, __rvv_float32m2x2_t
, vfloat32m2_t
, float
, 2, _f32m2x2
)
572 DEF_RVV_TUPLE_TYPE (vfloat32m2x3_t
, 19, __rvv_float32m2x3_t
, vfloat32m2_t
, float
, 3, _f32m2x3
)
573 DEF_RVV_TUPLE_TYPE (vfloat32m2x4_t
, 19, __rvv_float32m2x4_t
, vfloat32m2_t
, float
, 4, _f32m2x4
)
575 Machine mode
= RVVM4SFmode.
*/
576 DEF_RVV_TYPE (vfloat32m4_t
, 17, __rvv_float32m4_t
, float
, RVVM4SF
, _f32m4
, _f32
,
578 /* Define tuple types for SEW
= 32, LMUL
= M4.
*/
579 DEF_RVV_TUPLE_TYPE (vfloat32m4x2_t
, 19, __rvv_float32m4x2_t
, vfloat32m4_t
, float
, 2, _f32m4x2
)
581 Machine mode
= RVVM8SFmode.
*/
582 DEF_RVV_TYPE (vfloat32m8_t
, 17, __rvv_float32m8_t
, float
, RVVM8SF
, _f32m8
, _f32
,
586 Disable when
!TARGET_VECTOR_ELEN_FP_64.
*/
587 DEF_RVV_TYPE (vfloat64m1_t
, 17, __rvv_float64m1_t
, double
, RVVM1DF
, _f64m1
,
589 /* Define tuple types for SEW
= 64, LMUL
= M1.
*/
590 DEF_RVV_TUPLE_TYPE (vfloat64m1x2_t
, 19, __rvv_float64m1x2_t
, vfloat64m1_t
, double
, 2, _f64m1x2
)
591 DEF_RVV_TUPLE_TYPE (vfloat64m1x3_t
, 19, __rvv_float64m1x3_t
, vfloat64m1_t
, double
, 3, _f64m1x3
)
592 DEF_RVV_TUPLE_TYPE (vfloat64m1x4_t
, 19, __rvv_float64m1x4_t
, vfloat64m1_t
, double
, 4, _f64m1x4
)
593 DEF_RVV_TUPLE_TYPE (vfloat64m1x5_t
, 19, __rvv_float64m1x5_t
, vfloat64m1_t
, double
, 5, _f64m1x5
)
594 DEF_RVV_TUPLE_TYPE (vfloat64m1x6_t
, 19, __rvv_float64m1x6_t
, vfloat64m1_t
, double
, 6, _f64m1x6
)
595 DEF_RVV_TUPLE_TYPE (vfloat64m1x7_t
, 19, __rvv_float64m1x7_t
, vfloat64m1_t
, double
, 7, _f64m1x7
)
596 DEF_RVV_TUPLE_TYPE (vfloat64m1x8_t
, 19, __rvv_float64m1x8_t
, vfloat64m1_t
, double
, 8, _f64m1x8
)
597 DEF_RVV_TYPE (vfloat64m2_t
, 17, __rvv_float64m2_t
, double
, RVVM2DF
, _f64m2
,
599 /* Define tuple types for SEW
= 64, LMUL
= M2.
*/
600 DEF_RVV_TUPLE_TYPE (vfloat64m2x2_t
, 19, __rvv_float64m2x2_t
, vfloat64m2_t
, double
, 2, _f64m2x2
)
601 DEF_RVV_TUPLE_TYPE (vfloat64m2x3_t
, 19, __rvv_float64m2x3_t
, vfloat64m2_t
, double
, 3, _f64m2x3
)
602 DEF_RVV_TUPLE_TYPE (vfloat64m2x4_t
, 19, __rvv_float64m2x4_t
, vfloat64m2_t
, double
, 4, _f64m2x4
)
603 DEF_RVV_TYPE (vfloat64m4_t
, 17, __rvv_float64m4_t
, double
, RVVM4DF
, _f64m4
,
605 /* Define tuple types for SEW
= 64, LMUL
= M4.
*/
606 DEF_RVV_TUPLE_TYPE (vfloat64m4x2_t
, 19, __rvv_float64m4x2_t
, vfloat64m4_t
, double
, 2, _f64m4x2
)
607 DEF_RVV_TYPE (vfloat64m8_t
, 17, __rvv_float64m8_t
, double
, RVVM8DF
, _f64m8
,
616 DEF_RVV_OP_TYPE (x_v
)
617 DEF_RVV_OP_TYPE (vf2
)
618 DEF_RVV_OP_TYPE (vf4
)
619 DEF_RVV_OP_TYPE (vf8
)
620 DEF_RVV_OP_TYPE (vvm
)
621 DEF_RVV_OP_TYPE (vxm
)
622 DEF_RVV_OP_TYPE (x_w
)
630 DEF_RVV_OP_TYPE (vfm
)
632 DEF_RVV_OP_TYPE (f_v
)
633 DEF_RVV_OP_TYPE (xu_v
)
634 DEF_RVV_OP_TYPE (f_w
)
635 DEF_RVV_OP_TYPE (xu_w
)
638 DEF_RVV_PRED_TYPE (ta
)
639 DEF_RVV_PRED_TYPE (tu
)
640 DEF_RVV_PRED_TYPE (ma
)
641 DEF_RVV_PRED_TYPE (mu
)
642 DEF_RVV_PRED_TYPE (tama
)
643 DEF_RVV_PRED_TYPE (tamu
)
644 DEF_RVV_PRED_TYPE (tuma
)
645 DEF_RVV_PRED_TYPE (tumu
)
646 DEF_RVV_PRED_TYPE (m
)
647 DEF_RVV_PRED_TYPE (tam
)
648 DEF_RVV_PRED_TYPE (tum
)
650 DEF_RVV_BASE_TYPE (vector
, builtin_types
[type_idx
].vector
)
651 DEF_RVV_BASE_TYPE (scalar
, builtin_types
[type_idx
].scalar
)
652 DEF_RVV_BASE_TYPE (mask
, get_vector_type (type_idx
))
653 DEF_RVV_BASE_TYPE (signed_vector
, get_vector_type (type_idx
))
654 DEF_RVV_BASE_TYPE (unsigned_vector
, get_vector_type (type_idx
))
655 /* According to riscv
-vector
-builtins
-types.def
, the unsigned
656 type is always the signed type
+ 1 (They have same SEW and LMUL
).
657 For example
'vuint8mf8_t' enum
= 'vint8mf8_t' enum
+ 1.
658 Note
: We don
't allow type_idx to be unsigned type. */
659 DEF_RVV_BASE_TYPE (unsigned_scalar, builtin_types[type_idx + 1].scalar)
660 DEF_RVV_BASE_TYPE (vector_ptr, builtin_types[type_idx].vector_ptr)
661 /* According to the latest rvv-intrinsic-doc, it defines vsm.v intrinsic:
662 __riscv_vsm (uint8_t *base, vbool1_t value, size_t vl). */
663 DEF_RVV_BASE_TYPE (scalar_ptr, get_scalar_ptr_type (type_idx))
664 /* According to the latest rvv-intrinsic-doc, it defines vlm.v intrinsic:
665 __riscv_vlm_v_b1 (const uint8_t *base, size_t vl). */
666 DEF_RVV_BASE_TYPE (scalar_const_ptr, get_scalar_const_ptr_type (type_idx))
667 DEF_RVV_BASE_TYPE (void, void_type_node)
668 DEF_RVV_BASE_TYPE (size, size_type_node)
669 DEF_RVV_BASE_TYPE (ptrdiff, ptrdiff_type_node)
670 DEF_RVV_BASE_TYPE (unsigned_long, long_unsigned_type_node)
671 DEF_RVV_BASE_TYPE (long, long_integer_type_node)
672 DEF_RVV_BASE_TYPE (eew8_index, get_vector_type (type_idx))
673 DEF_RVV_BASE_TYPE (eew16_index, get_vector_type (type_idx))
674 DEF_RVV_BASE_TYPE (eew32_index, get_vector_type (type_idx))
675 DEF_RVV_BASE_TYPE (eew64_index, get_vector_type (type_idx))
676 DEF_RVV_BASE_TYPE (shift_vector, get_vector_type (type_idx))
677 DEF_RVV_BASE_TYPE (double_trunc_vector, get_vector_type (type_idx))
678 DEF_RVV_BASE_TYPE (quad_trunc_vector, get_vector_type (type_idx))
679 DEF_RVV_BASE_TYPE (oct_trunc_vector, get_vector_type (type_idx))
680 DEF_RVV_BASE_TYPE (double_trunc_scalar, get_scalar_type (type_idx))
681 DEF_RVV_BASE_TYPE (double_trunc_signed_vector, get_vector_type (type_idx))
682 DEF_RVV_BASE_TYPE (double_trunc_unsigned_vector, get_vector_type (type_idx))
683 DEF_RVV_BASE_TYPE (double_trunc_unsigned_scalar, get_scalar_type (type_idx))
684 DEF_RVV_BASE_TYPE (double_trunc_bfloat_scalar, get_scalar_type (type_idx))
685 DEF_RVV_BASE_TYPE (double_trunc_bfloat_vector, get_vector_type (type_idx))
686 DEF_RVV_BASE_TYPE (double_trunc_float_vector, get_vector_type (type_idx))
687 DEF_RVV_BASE_TYPE (float_vector, get_vector_type (type_idx))
688 DEF_RVV_BASE_TYPE (lmul1_vector, get_vector_type (type_idx))
689 DEF_RVV_BASE_TYPE (widen_lmul1_vector, get_vector_type (type_idx))
690 DEF_RVV_BASE_TYPE (eew8_interpret, get_vector_type (type_idx))
691 DEF_RVV_BASE_TYPE (eew16_interpret, get_vector_type (type_idx))
692 DEF_RVV_BASE_TYPE (eew32_interpret, get_vector_type (type_idx))
693 DEF_RVV_BASE_TYPE (eew64_interpret, get_vector_type (type_idx))
694 DEF_RVV_BASE_TYPE (bool1_interpret, get_vector_type (type_idx))
695 DEF_RVV_BASE_TYPE (bool2_interpret, get_vector_type (type_idx))
696 DEF_RVV_BASE_TYPE (bool4_interpret, get_vector_type (type_idx))
697 DEF_RVV_BASE_TYPE (bool8_interpret, get_vector_type (type_idx))
698 DEF_RVV_BASE_TYPE (bool16_interpret, get_vector_type (type_idx))
699 DEF_RVV_BASE_TYPE (bool32_interpret, get_vector_type (type_idx))
700 DEF_RVV_BASE_TYPE (bool64_interpret, get_vector_type (type_idx))
701 DEF_RVV_BASE_TYPE (signed_eew8_lmul1_interpret, get_vector_type (type_idx))
702 DEF_RVV_BASE_TYPE (signed_eew16_lmul1_interpret, get_vector_type (type_idx))
703 DEF_RVV_BASE_TYPE (signed_eew32_lmul1_interpret, get_vector_type (type_idx))
704 DEF_RVV_BASE_TYPE (signed_eew64_lmul1_interpret, get_vector_type (type_idx))
705 DEF_RVV_BASE_TYPE (unsigned_eew8_lmul1_interpret, get_vector_type (type_idx))
706 DEF_RVV_BASE_TYPE (unsigned_eew16_lmul1_interpret, get_vector_type (type_idx))
707 DEF_RVV_BASE_TYPE (unsigned_eew32_lmul1_interpret, get_vector_type (type_idx))
708 DEF_RVV_BASE_TYPE (unsigned_eew64_lmul1_interpret, get_vector_type (type_idx))
709 DEF_RVV_BASE_TYPE (vlmul_ext_x2, get_vector_type (type_idx))
710 DEF_RVV_BASE_TYPE (vlmul_ext_x4, get_vector_type (type_idx))
711 DEF_RVV_BASE_TYPE (vlmul_ext_x8, get_vector_type (type_idx))
712 DEF_RVV_BASE_TYPE (vlmul_ext_x16, get_vector_type (type_idx))
713 DEF_RVV_BASE_TYPE (vlmul_ext_x32, get_vector_type (type_idx))
714 DEF_RVV_BASE_TYPE (vlmul_ext_x64, get_vector_type (type_idx))
715 DEF_RVV_BASE_TYPE (size_ptr, build_pointer_type (size_type_node))
716 DEF_RVV_BASE_TYPE (tuple_subpart, get_tuple_subpart_type (type_idx))
718 DEF_RVV_VXRM_ENUM (RNU, VXRM_RNU)
719 DEF_RVV_VXRM_ENUM (RNE, VXRM_RNE)
720 DEF_RVV_VXRM_ENUM (RDN, VXRM_RDN)
721 DEF_RVV_VXRM_ENUM (ROD, VXRM_ROD)
723 DEF_RVV_FRM_ENUM (RNE, FRM_RNE)
724 DEF_RVV_FRM_ENUM (RTZ, FRM_RTZ)
725 DEF_RVV_FRM_ENUM (RDN, FRM_RDN)
726 DEF_RVV_FRM_ENUM (RUP, FRM_RUP)
727 DEF_RVV_FRM_ENUM (RMM, FRM_RMM)
729 #include "riscv-vector-type-indexer.gen.def"
731 #undef DEF_RVV_PRED_TYPE
732 #undef DEF_RVV_OP_TYPE
734 #undef DEF_RVV_TUPLE_TYPE
735 #undef DEF_RVV_BASE_TYPE
736 #undef DEF_RVV_TYPE_INDEX
737 #undef DEF_RVV_VXRM_ENUM
738 #undef DEF_RVV_FRM_ENUM