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_FLOAT
, FLOAT, LMUL1
, WLMUL1
, \
76 EEW8_INTERPRET
, EEW16_INTERPRET
, EEW32_INTERPRET
, EEW64_INTERPRET
, \
77 BOOL1_INTERPRET
, BOOL2_INTERPRET
, BOOL4_INTERPRET
, BOOL8_INTERPRET
, \
78 BOOL16_INTERPRET
, BOOL32_INTERPRET
, BOOL64_INTERPRET
, \
79 SIGNED_EEW8_LMUL1_INTERPRET
, SIGNED_EEW16_LMUL1_INTERPRET
, \
80 SIGNED_EEW32_LMUL1_INTERPRET
, SIGNED_EEW64_LMUL1_INTERPRET
, \
81 UNSIGNED_EEW8_LMUL1_INTERPRET
, UNSIGNED_EEW16_LMUL1_INTERPRET
, \
82 UNSIGNED_EEW32_LMUL1_INTERPRET
, UNSIGNED_EEW64_LMUL1_INTERPRET
, \
83 X2_VLMUL_EXT
, X4_VLMUL_EXT
, X8_VLMUL_EXT
, X16_VLMUL_EXT
, X32_VLMUL_EXT
, \
84 X64_VLMUL_EXT
, TUPLE_SUBPART
)
87 /* Define RVV_VXRM rounding mode enum for fixed
-point intrinsics.
*/
88 #ifndef DEF_RVV_VXRM_ENUM
89 #define
DEF_RVV_VXRM_ENUM(NAME
, VALUE
)
92 /* Define RVV_FRM rounding mode enum for floating
-point intrinsics.
*/
93 #ifndef DEF_RVV_FRM_ENUM
94 #define
DEF_RVV_FRM_ENUM(NAME
, VALUE
)
98 Only enable when TARGET_MIN_VLEN
> 32.
99 Machine mode
= RVVMF64BImode.
*/
100 DEF_RVV_TYPE (vbool64_t
, 14, __rvv_bool64_t
, boolean
, RVVMF64BI
, _b64
, , )
102 Machine mode
= RVVMF32BImode.
*/
103 DEF_RVV_TYPE (vbool32_t
, 14, __rvv_bool32_t
, boolean
, RVVMF32BI
, _b32
, , )
105 Machine mode
= RVVMF16BImode.
*/
106 DEF_RVV_TYPE (vbool16_t
, 14, __rvv_bool16_t
, boolean
, RVVMF16BI
, _b16
, , )
108 Machine mode
= RVVMF8BImode.
*/
109 DEF_RVV_TYPE (vbool8_t
, 13, __rvv_bool8_t
, boolean
, RVVMF8BI
, _b8
, , )
111 Machine mode
= RVVMF4BImode.
*/
112 DEF_RVV_TYPE (vbool4_t
, 13, __rvv_bool4_t
, boolean
, RVVMF4BI
, _b4
, , )
114 Machine mode
= RVVMF2BImode.
*/
115 DEF_RVV_TYPE (vbool2_t
, 13, __rvv_bool2_t
, boolean
, RVVMF2BI
, _b2
, , )
117 Machine mode
= RVVM1BImode.
*/
118 DEF_RVV_TYPE (vbool1_t
, 13, __rvv_bool1_t
, boolean
, RVVM1BI
, _b1
, , )
121 Only enble when TARGET_MIN_VLEN
> 32.
122 Machine mode
= RVVMF8QImode.
*/
123 DEF_RVV_TYPE (vint8mf8_t
, 15, __rvv_int8mf8_t
, int8
, RVVMF8QI
, _i8mf8
, _i8
,
125 DEF_RVV_TYPE (vuint8mf8_t
, 16, __rvv_uint8mf8_t
, uint8
, RVVMF8QI
, _u8mf8
, _u8
,
127 /* Define tuple types for SEW
= 8, LMUL
= MF8.
*/
128 DEF_RVV_TUPLE_TYPE (vint8mf8x2_t
, 17, __rvv_int8mf8x2_t
, vint8mf8_t
, int8
, 2, _i8mf8x2
)
129 DEF_RVV_TUPLE_TYPE (vuint8mf8x2_t
, 18, __rvv_uint8mf8x2_t
, vuint8mf8_t
, uint8
, 2, _u8mf8x2
)
130 DEF_RVV_TUPLE_TYPE (vint8mf8x3_t
, 17, __rvv_int8mf8x3_t
, vint8mf8_t
, int8
, 3, _i8mf8x3
)
131 DEF_RVV_TUPLE_TYPE (vuint8mf8x3_t
, 18, __rvv_uint8mf8x3_t
, vuint8mf8_t
, uint8
, 3, _u8mf8x3
)
132 DEF_RVV_TUPLE_TYPE (vint8mf8x4_t
, 17, __rvv_int8mf8x4_t
, vint8mf8_t
, int8
, 4, _i8mf8x4
)
133 DEF_RVV_TUPLE_TYPE (vuint8mf8x4_t
, 18, __rvv_uint8mf8x4_t
, vuint8mf8_t
, uint8
, 4, _u8mf8x4
)
134 DEF_RVV_TUPLE_TYPE (vint8mf8x5_t
, 17, __rvv_int8mf8x5_t
, vint8mf8_t
, int8
, 5, _i8mf8x5
)
135 DEF_RVV_TUPLE_TYPE (vuint8mf8x5_t
, 18, __rvv_uint8mf8x5_t
, vuint8mf8_t
, uint8
, 5, _u8mf8x5
)
136 DEF_RVV_TUPLE_TYPE (vint8mf8x6_t
, 17, __rvv_int8mf8x6_t
, vint8mf8_t
, int8
, 6, _i8mf8x6
)
137 DEF_RVV_TUPLE_TYPE (vuint8mf8x6_t
, 18, __rvv_uint8mf8x6_t
, vuint8mf8_t
, uint8
, 6, _u8mf8x6
)
138 DEF_RVV_TUPLE_TYPE (vint8mf8x7_t
, 17, __rvv_int8mf8x7_t
, vint8mf8_t
, int8
, 7, _i8mf8x7
)
139 DEF_RVV_TUPLE_TYPE (vuint8mf8x7_t
, 18, __rvv_uint8mf8x7_t
, vuint8mf8_t
, uint8
, 7, _u8mf8x7
)
140 DEF_RVV_TUPLE_TYPE (vint8mf8x8_t
, 17, __rvv_int8mf8x8_t
, vint8mf8_t
, int8
, 8, _i8mf8x8
)
141 DEF_RVV_TUPLE_TYPE (vuint8mf8x8_t
, 18, __rvv_uint8mf8x8_t
, vuint8mf8_t
, uint8
, 8, _u8mf8x8
)
143 Machine mode
= RVVMF4QImode.
*/
144 DEF_RVV_TYPE (vint8mf4_t
, 15, __rvv_int8mf4_t
, int8
, RVVMF4QI
, _i8mf4
, _i8
,
146 DEF_RVV_TYPE (vuint8mf4_t
, 16, __rvv_uint8mf4_t
, uint8
, RVVMF4QI
, _u8mf4
, _u8
,
148 /* Define tuple types for SEW
= 8, LMUL
= MF4.
*/
149 DEF_RVV_TUPLE_TYPE (vint8mf4x2_t
, 17, __rvv_int8mf4x2_t
, vint8mf4_t
, int8
, 2, _i8mf4x2
)
150 DEF_RVV_TUPLE_TYPE (vuint8mf4x2_t
, 18, __rvv_uint8mf4x2_t
, vuint8mf4_t
, uint8
, 2, _u8mf4x2
)
151 DEF_RVV_TUPLE_TYPE (vint8mf4x3_t
, 17, __rvv_int8mf4x3_t
, vint8mf4_t
, int8
, 3, _i8mf4x3
)
152 DEF_RVV_TUPLE_TYPE (vuint8mf4x3_t
, 18, __rvv_uint8mf4x3_t
, vuint8mf4_t
, uint8
, 3, _u8mf4x3
)
153 DEF_RVV_TUPLE_TYPE (vint8mf4x4_t
, 17, __rvv_int8mf4x4_t
, vint8mf4_t
, int8
, 4, _i8mf4x4
)
154 DEF_RVV_TUPLE_TYPE (vuint8mf4x4_t
, 18, __rvv_uint8mf4x4_t
, vuint8mf4_t
, uint8
, 4, _u8mf4x4
)
155 DEF_RVV_TUPLE_TYPE (vint8mf4x5_t
, 17, __rvv_int8mf4x5_t
, vint8mf4_t
, int8
, 5, _i8mf4x5
)
156 DEF_RVV_TUPLE_TYPE (vuint8mf4x5_t
, 18, __rvv_uint8mf4x5_t
, vuint8mf4_t
, uint8
, 5, _u8mf4x5
)
157 DEF_RVV_TUPLE_TYPE (vint8mf4x6_t
, 17, __rvv_int8mf4x6_t
, vint8mf4_t
, int8
, 6, _i8mf4x6
)
158 DEF_RVV_TUPLE_TYPE (vuint8mf4x6_t
, 18, __rvv_uint8mf4x6_t
, vuint8mf4_t
, uint8
, 6, _u8mf4x6
)
159 DEF_RVV_TUPLE_TYPE (vint8mf4x7_t
, 17, __rvv_int8mf4x7_t
, vint8mf4_t
, int8
, 7, _i8mf4x7
)
160 DEF_RVV_TUPLE_TYPE (vuint8mf4x7_t
, 18, __rvv_uint8mf4x7_t
, vuint8mf4_t
, uint8
, 7, _u8mf4x7
)
161 DEF_RVV_TUPLE_TYPE (vint8mf4x8_t
, 17, __rvv_int8mf4x8_t
, vint8mf4_t
, int8
, 8, _i8mf4x8
)
162 DEF_RVV_TUPLE_TYPE (vuint8mf4x8_t
, 18, __rvv_uint8mf4x8_t
, vuint8mf4_t
, uint8
, 8, _u8mf4x8
)
164 Machine mode
= RVVMF2QImode.
*/
165 DEF_RVV_TYPE (vint8mf2_t
, 15, __rvv_int8mf2_t
, int8
, RVVMF2QI
, _i8mf2
, _i8
,
167 DEF_RVV_TYPE (vuint8mf2_t
, 16, __rvv_uint8mf2_t
, uint8
, RVVMF2QI
, _u8mf2
, _u8
,
169 /* Define tuple types for SEW
= 8, LMUL
= MF2.
*/
170 DEF_RVV_TUPLE_TYPE (vint8mf2x2_t
, 17, __rvv_int8mf2x2_t
, vint8mf2_t
, int8
, 2, _i8mf2x2
)
171 DEF_RVV_TUPLE_TYPE (vuint8mf2x2_t
, 18, __rvv_uint8mf2x2_t
, vuint8mf2_t
, uint8
, 2, _u8mf2x2
)
172 DEF_RVV_TUPLE_TYPE (vint8mf2x3_t
, 17, __rvv_int8mf2x3_t
, vint8mf2_t
, int8
, 3, _i8mf2x3
)
173 DEF_RVV_TUPLE_TYPE (vuint8mf2x3_t
, 18, __rvv_uint8mf2x3_t
, vuint8mf2_t
, uint8
, 3, _u8mf2x3
)
174 DEF_RVV_TUPLE_TYPE (vint8mf2x4_t
, 17, __rvv_int8mf2x4_t
, vint8mf2_t
, int8
, 4, _i8mf2x4
)
175 DEF_RVV_TUPLE_TYPE (vuint8mf2x4_t
, 18, __rvv_uint8mf2x4_t
, vuint8mf2_t
, uint8
, 4, _u8mf2x4
)
176 DEF_RVV_TUPLE_TYPE (vint8mf2x5_t
, 17, __rvv_int8mf2x5_t
, vint8mf2_t
, int8
, 5, _i8mf2x5
)
177 DEF_RVV_TUPLE_TYPE (vuint8mf2x5_t
, 18, __rvv_uint8mf2x5_t
, vuint8mf2_t
, uint8
, 5, _u8mf2x5
)
178 DEF_RVV_TUPLE_TYPE (vint8mf2x6_t
, 17, __rvv_int8mf2x6_t
, vint8mf2_t
, int8
, 6, _i8mf2x6
)
179 DEF_RVV_TUPLE_TYPE (vuint8mf2x6_t
, 18, __rvv_uint8mf2x6_t
, vuint8mf2_t
, uint8
, 6, _u8mf2x6
)
180 DEF_RVV_TUPLE_TYPE (vint8mf2x7_t
, 17, __rvv_int8mf2x7_t
, vint8mf2_t
, int8
, 7, _i8mf2x7
)
181 DEF_RVV_TUPLE_TYPE (vuint8mf2x7_t
, 18, __rvv_uint8mf2x7_t
, vuint8mf2_t
, uint8
, 7, _u8mf2x7
)
182 DEF_RVV_TUPLE_TYPE (vint8mf2x8_t
, 17, __rvv_int8mf2x8_t
, vint8mf2_t
, int8
, 8, _i8mf2x8
)
183 DEF_RVV_TUPLE_TYPE (vuint8mf2x8_t
, 18, __rvv_uint8mf2x8_t
, vuint8mf2_t
, uint8
, 8, _u8mf2x8
)
185 Machine mode
= RVVM1QImode.
*/
186 DEF_RVV_TYPE (vint8m1_t
, 14, __rvv_int8m1_t
, int8
, RVVM1QI
, _i8m1
, _i8
, _e8m1
)
187 DEF_RVV_TYPE (vuint8m1_t
, 15, __rvv_uint8m1_t
, uint8
, RVVM1QI
, _u8m1
, _u8
,
189 /* Define tuple types for SEW
= 8, LMUL
= M1.
*/
190 DEF_RVV_TUPLE_TYPE (vint8m1x2_t
, 16, __rvv_int8m1x2_t
, vint8m1_t
, int8
, 2, _i8m1x2
)
191 DEF_RVV_TUPLE_TYPE (vuint8m1x2_t
, 17, __rvv_uint8m1x2_t
, vuint8m1_t
, uint8
, 2, _u8m1x2
)
192 DEF_RVV_TUPLE_TYPE (vint8m1x3_t
, 16, __rvv_int8m1x3_t
, vint8m1_t
, int8
, 3, _i8m1x3
)
193 DEF_RVV_TUPLE_TYPE (vuint8m1x3_t
, 17, __rvv_uint8m1x3_t
, vuint8m1_t
, uint8
, 3, _u8m1x3
)
194 DEF_RVV_TUPLE_TYPE (vint8m1x4_t
, 16, __rvv_int8m1x4_t
, vint8m1_t
, int8
, 4, _i8m1x4
)
195 DEF_RVV_TUPLE_TYPE (vuint8m1x4_t
, 17, __rvv_uint8m1x4_t
, vuint8m1_t
, uint8
, 4, _u8m1x4
)
196 DEF_RVV_TUPLE_TYPE (vint8m1x5_t
, 16, __rvv_int8m1x5_t
, vint8m1_t
, int8
, 5, _i8m1x5
)
197 DEF_RVV_TUPLE_TYPE (vuint8m1x5_t
, 17, __rvv_uint8m1x5_t
, vuint8m1_t
, uint8
, 5, _u8m1x5
)
198 DEF_RVV_TUPLE_TYPE (vint8m1x6_t
, 16, __rvv_int8m1x6_t
, vint8m1_t
, int8
, 6, _i8m1x6
)
199 DEF_RVV_TUPLE_TYPE (vuint8m1x6_t
, 17, __rvv_uint8m1x6_t
, vuint8m1_t
, uint8
, 6, _u8m1x6
)
200 DEF_RVV_TUPLE_TYPE (vint8m1x7_t
, 16, __rvv_int8m1x7_t
, vint8m1_t
, int8
, 7, _i8m1x7
)
201 DEF_RVV_TUPLE_TYPE (vuint8m1x7_t
, 17, __rvv_uint8m1x7_t
, vuint8m1_t
, uint8
, 7, _u8m1x7
)
202 DEF_RVV_TUPLE_TYPE (vint8m1x8_t
, 16, __rvv_int8m1x8_t
, vint8m1_t
, int8
, 8, _i8m1x8
)
203 DEF_RVV_TUPLE_TYPE (vuint8m1x8_t
, 17, __rvv_uint8m1x8_t
, vuint8m1_t
, uint8
, 8, _u8m1x8
)
205 Machine mode
= RVVM2QImode.
*/
206 DEF_RVV_TYPE (vint8m2_t
, 14, __rvv_int8m2_t
, int8
, RVVM2QI
, _i8m2
, _i8
, _e8m2
)
207 DEF_RVV_TYPE (vuint8m2_t
, 15, __rvv_uint8m2_t
, uint8
, RVVM2QI
, _u8m2
, _u8
,
209 /* Define tuple types for SEW
= 8, LMUL
= M2.
*/
210 DEF_RVV_TUPLE_TYPE (vint8m2x2_t
, 16, __rvv_int8m2x2_t
, vint8m2_t
, int8
, 2, _i8m2x2
)
211 DEF_RVV_TUPLE_TYPE (vuint8m2x2_t
, 17, __rvv_uint8m2x2_t
, vuint8m2_t
, uint8
, 2, _u8m2x2
)
212 DEF_RVV_TUPLE_TYPE (vint8m2x3_t
, 16, __rvv_int8m2x3_t
, vint8m2_t
, int8
, 3, _i8m2x3
)
213 DEF_RVV_TUPLE_TYPE (vuint8m2x3_t
, 17, __rvv_uint8m2x3_t
, vuint8m2_t
, uint8
, 3, _u8m2x3
)
214 DEF_RVV_TUPLE_TYPE (vint8m2x4_t
, 16, __rvv_int8m2x4_t
, vint8m2_t
, int8
, 4, _i8m2x4
)
215 DEF_RVV_TUPLE_TYPE (vuint8m2x4_t
, 17, __rvv_uint8m2x4_t
, vuint8m2_t
, uint8
, 4, _u8m2x4
)
217 Machine mode
= RVVM4QImode.
*/
218 DEF_RVV_TYPE (vint8m4_t
, 14, __rvv_int8m4_t
, int8
, RVVM4QI
, _i8m4
, _i8
, _e8m4
)
219 DEF_RVV_TYPE (vuint8m4_t
, 15, __rvv_uint8m4_t
, uint8
, RVVM4QI
, _u8m4
, _u8
,
221 /* Define tuple types for SEW
= 8, LMUL
= M4.
*/
222 DEF_RVV_TUPLE_TYPE (vint8m4x2_t
, 16, __rvv_int8m4x2_t
, vint8m4_t
, int8
, 2, _i8m4x2
)
223 DEF_RVV_TUPLE_TYPE (vuint8m4x2_t
, 17, __rvv_uint8m4x2_t
, vuint8m4_t
, uint8
, 2, _u8m4x2
)
225 Machine mode
= RVVM8QImode.
*/
226 DEF_RVV_TYPE (vint8m8_t
, 14, __rvv_int8m8_t
, int8
, RVVM8QI
, _i8m8
, _i8
, _e8m8
)
227 DEF_RVV_TYPE (vuint8m8_t
, 15, __rvv_uint8m8_t
, uint8
, RVVM8QI
, _u8m8
, _u8
,
231 Only enble when TARGET_MIN_VLEN
> 32.
232 Machine mode
= RVVMF4HImode.
*/
233 DEF_RVV_TYPE (vint16mf4_t
, 16, __rvv_int16mf4_t
, int16
, RVVMF4HI
, _i16mf4
, _i16
,
235 DEF_RVV_TYPE (vuint16mf4_t
, 17, __rvv_uint16mf4_t
, uint16
, RVVMF4HI
, _u16mf4
,
237 /* Define tuple types for SEW
= 16, LMUL
= MF4.
*/
238 DEF_RVV_TUPLE_TYPE (vint16mf4x2_t
, 18, __rvv_int16mf4x2_t
, vint16mf4_t
, int16
, 2, _i16mf4x2
)
239 DEF_RVV_TUPLE_TYPE (vuint16mf4x2_t
, 19, __rvv_uint16mf4x2_t
, vuint16mf4_t
, uint16
, 2, _u16mf4x2
)
240 DEF_RVV_TUPLE_TYPE (vint16mf4x3_t
, 18, __rvv_int16mf4x3_t
, vint16mf4_t
, int16
, 3, _i16mf4x3
)
241 DEF_RVV_TUPLE_TYPE (vuint16mf4x3_t
, 19, __rvv_uint16mf4x3_t
, vuint16mf4_t
, uint16
, 3, _u16mf4x3
)
242 DEF_RVV_TUPLE_TYPE (vint16mf4x4_t
, 18, __rvv_int16mf4x4_t
, vint16mf4_t
, int16
, 4, _i16mf4x4
)
243 DEF_RVV_TUPLE_TYPE (vuint16mf4x4_t
, 19, __rvv_uint16mf4x4_t
, vuint16mf4_t
, uint16
, 4, _u16mf4x4
)
244 DEF_RVV_TUPLE_TYPE (vint16mf4x5_t
, 18, __rvv_int16mf4x5_t
, vint16mf4_t
, int16
, 5, _i16mf4x5
)
245 DEF_RVV_TUPLE_TYPE (vuint16mf4x5_t
, 19, __rvv_uint16mf4x5_t
, vuint16mf4_t
, uint16
, 5, _u16mf4x5
)
246 DEF_RVV_TUPLE_TYPE (vint16mf4x6_t
, 18, __rvv_int16mf4x6_t
, vint16mf4_t
, int16
, 6, _i16mf4x6
)
247 DEF_RVV_TUPLE_TYPE (vuint16mf4x6_t
, 19, __rvv_uint16mf4x6_t
, vuint16mf4_t
, uint16
, 6, _u16mf4x6
)
248 DEF_RVV_TUPLE_TYPE (vint16mf4x7_t
, 18, __rvv_int16mf4x7_t
, vint16mf4_t
, int16
, 7, _i16mf4x7
)
249 DEF_RVV_TUPLE_TYPE (vuint16mf4x7_t
, 19, __rvv_uint16mf4x7_t
, vuint16mf4_t
, uint16
, 7, _u16mf4x7
)
250 DEF_RVV_TUPLE_TYPE (vint16mf4x8_t
, 18, __rvv_int16mf4x8_t
, vint16mf4_t
, int16
, 8, _i16mf4x8
)
251 DEF_RVV_TUPLE_TYPE (vuint16mf4x8_t
, 19, __rvv_uint16mf4x8_t
, vuint16mf4_t
, uint16
, 8, _u16mf4x8
)
253 Machine mode
= RVVMF2HImode.
*/
254 DEF_RVV_TYPE (vint16mf2_t
, 16, __rvv_int16mf2_t
, int16
, RVVMF2HI
, _i16mf2
, _i16
,
256 DEF_RVV_TYPE (vuint16mf2_t
, 17, __rvv_uint16mf2_t
, uint16
, RVVMF2HI
, _u16mf2
,
258 /* Define tuple types for SEW
= 16, LMUL
= MF2.
*/
259 DEF_RVV_TUPLE_TYPE (vint16mf2x2_t
, 18, __rvv_int16mf2x2_t
, vint16mf2_t
, int16
, 2, _i16mf2x2
)
260 DEF_RVV_TUPLE_TYPE (vuint16mf2x2_t
, 19, __rvv_uint16mf2x2_t
, vuint16mf2_t
, uint16
, 2, _u16mf2x2
)
261 DEF_RVV_TUPLE_TYPE (vint16mf2x3_t
, 18, __rvv_int16mf2x3_t
, vint16mf2_t
, int16
, 3, _i16mf2x3
)
262 DEF_RVV_TUPLE_TYPE (vuint16mf2x3_t
, 19, __rvv_uint16mf2x3_t
, vuint16mf2_t
, uint16
, 3, _u16mf2x3
)
263 DEF_RVV_TUPLE_TYPE (vint16mf2x4_t
, 18, __rvv_int16mf2x4_t
, vint16mf2_t
, int16
, 4, _i16mf2x4
)
264 DEF_RVV_TUPLE_TYPE (vuint16mf2x4_t
, 19, __rvv_uint16mf2x4_t
, vuint16mf2_t
, uint16
, 4, _u16mf2x4
)
265 DEF_RVV_TUPLE_TYPE (vint16mf2x5_t
, 18, __rvv_int16mf2x5_t
, vint16mf2_t
, int16
, 5, _i16mf2x5
)
266 DEF_RVV_TUPLE_TYPE (vuint16mf2x5_t
, 19, __rvv_uint16mf2x5_t
, vuint16mf2_t
, uint16
, 5, _u16mf2x5
)
267 DEF_RVV_TUPLE_TYPE (vint16mf2x6_t
, 18, __rvv_int16mf2x6_t
, vint16mf2_t
, int16
, 6, _i16mf2x6
)
268 DEF_RVV_TUPLE_TYPE (vuint16mf2x6_t
, 19, __rvv_uint16mf2x6_t
, vuint16mf2_t
, uint16
, 6, _u16mf2x6
)
269 DEF_RVV_TUPLE_TYPE (vint16mf2x7_t
, 18, __rvv_int16mf2x7_t
, vint16mf2_t
, int16
, 7, _i16mf2x7
)
270 DEF_RVV_TUPLE_TYPE (vuint16mf2x7_t
, 19, __rvv_uint16mf2x7_t
, vuint16mf2_t
, uint16
, 7, _u16mf2x7
)
271 DEF_RVV_TUPLE_TYPE (vint16mf2x8_t
, 18, __rvv_int16mf2x8_t
, vint16mf2_t
, int16
, 8, _i16mf2x8
)
272 DEF_RVV_TUPLE_TYPE (vuint16mf2x8_t
, 19, __rvv_uint16mf2x8_t
, vuint16mf2_t
, uint16
, 8, _u16mf2x8
)
274 Machine mode
= RVVM1HImode.
*/
275 DEF_RVV_TYPE (vint16m1_t
, 15, __rvv_int16m1_t
, int16
, RVVM1HI
, _i16m1
, _i16
,
277 DEF_RVV_TYPE (vuint16m1_t
, 16, __rvv_uint16m1_t
, uint16
, RVVM1HI
, _u16m1
, _u16
,
279 /* Define tuple types for SEW
= 16, LMUL
= M1.
*/
280 DEF_RVV_TUPLE_TYPE (vint16m1x2_t
, 17, __rvv_int16m1x2_t
, vint16m1_t
, int16
, 2, _i16m1x2
)
281 DEF_RVV_TUPLE_TYPE (vuint16m1x2_t
, 18, __rvv_uint16m1x2_t
, vuint16m1_t
, uint16
, 2, _u16m1x2
)
282 DEF_RVV_TUPLE_TYPE (vint16m1x3_t
, 17, __rvv_int16m1x3_t
, vint16m1_t
, int16
, 3, _i16m1x3
)
283 DEF_RVV_TUPLE_TYPE (vuint16m1x3_t
, 18, __rvv_uint16m1x3_t
, vuint16m1_t
, uint16
, 3, _u16m1x3
)
284 DEF_RVV_TUPLE_TYPE (vint16m1x4_t
, 17, __rvv_int16m1x4_t
, vint16m1_t
, int16
, 4, _i16m1x4
)
285 DEF_RVV_TUPLE_TYPE (vuint16m1x4_t
, 18, __rvv_uint16m1x4_t
, vuint16m1_t
, uint16
, 4, _u16m1x4
)
286 DEF_RVV_TUPLE_TYPE (vint16m1x5_t
, 17, __rvv_int16m1x5_t
, vint16m1_t
, int16
, 5, _i16m1x5
)
287 DEF_RVV_TUPLE_TYPE (vuint16m1x5_t
, 18, __rvv_uint16m1x5_t
, vuint16m1_t
, uint16
, 5, _u16m1x5
)
288 DEF_RVV_TUPLE_TYPE (vint16m1x6_t
, 17, __rvv_int16m1x6_t
, vint16m1_t
, int16
, 6, _i16m1x6
)
289 DEF_RVV_TUPLE_TYPE (vuint16m1x6_t
, 18, __rvv_uint16m1x6_t
, vuint16m1_t
, uint16
, 6, _u16m1x6
)
290 DEF_RVV_TUPLE_TYPE (vint16m1x7_t
, 17, __rvv_int16m1x7_t
, vint16m1_t
, int16
, 7, _i16m1x7
)
291 DEF_RVV_TUPLE_TYPE (vuint16m1x7_t
, 18, __rvv_uint16m1x7_t
, vuint16m1_t
, uint16
, 7, _u16m1x7
)
292 DEF_RVV_TUPLE_TYPE (vint16m1x8_t
, 17, __rvv_int16m1x8_t
, vint16m1_t
, int16
, 8, _i16m1x8
)
293 DEF_RVV_TUPLE_TYPE (vuint16m1x8_t
, 18, __rvv_uint16m1x8_t
, vuint16m1_t
, uint16
, 8, _u16m1x8
)
295 Machine mode
= RVVM1H2mode.
*/
296 DEF_RVV_TYPE (vint16m2_t
, 15, __rvv_int16m2_t
, int16
, RVVM2HI
, _i16m2
, _i16
,
298 DEF_RVV_TYPE (vuint16m2_t
, 16, __rvv_uint16m2_t
, uint16
, RVVM2HI
, _u16m2
, _u16
,
300 /* Define tuple types for SEW
= 16, LMUL
= M2.
*/
301 DEF_RVV_TUPLE_TYPE (vint16m2x2_t
, 17, __rvv_int16m2x2_t
, vint16m2_t
, int16
, 2, _i16m2x2
)
302 DEF_RVV_TUPLE_TYPE (vuint16m2x2_t
, 18, __rvv_uint16m2x2_t
, vuint16m2_t
, uint16
, 2, _u16m2x2
)
303 DEF_RVV_TUPLE_TYPE (vint16m2x3_t
, 17, __rvv_int16m2x3_t
, vint16m2_t
, int16
, 3, _i16m2x3
)
304 DEF_RVV_TUPLE_TYPE (vuint16m2x3_t
, 18, __rvv_uint16m2x3_t
, vuint16m2_t
, uint16
, 3, _u16m2x3
)
305 DEF_RVV_TUPLE_TYPE (vint16m2x4_t
, 17, __rvv_int16m2x4_t
, vint16m2_t
, int16
, 4, _i16m2x4
)
306 DEF_RVV_TUPLE_TYPE (vuint16m2x4_t
, 18, __rvv_uint16m2x4_t
, vuint16m2_t
, uint16
, 4, _u16m2x4
)
308 Machine mode
= RVVM4HImode.
*/
309 DEF_RVV_TYPE (vint16m4_t
, 15, __rvv_int16m4_t
, int16
, RVVM4HI
, _i16m4
, _i16
,
311 DEF_RVV_TYPE (vuint16m4_t
, 16, __rvv_uint16m4_t
, uint16
, RVVM4HI
, _u16m4
, _u16
,
313 /* Define tuple types for SEW
= 16, LMUL
= M4.
*/
314 DEF_RVV_TUPLE_TYPE (vint16m4x2_t
, 17, __rvv_int16m4x2_t
, vint16m4_t
, int16
, 2, _i16m4x2
)
315 DEF_RVV_TUPLE_TYPE (vuint16m4x2_t
, 18, __rvv_uint16m4x2_t
, vuint16m4_t
, uint16
, 2, _u16m4x2
)
317 Machine mode
= RVVM8HImode.
*/
318 DEF_RVV_TYPE (vint16m8_t
, 15, __rvv_int16m8_t
, int16
, RVVM8HI
, _i16m8
, _i16
,
320 DEF_RVV_TYPE (vuint16m8_t
, 16, __rvv_uint16m8_t
, uint16
, RVVM8HI
, _u16m8
, _u16
,
324 Only enble when TARGET_MIN_VLEN
> 32.
325 Machine mode
= RVVMF2SImode.
*/
326 DEF_RVV_TYPE (vint32mf2_t
, 16, __rvv_int32mf2_t
, int32
, RVVMF2SI
, _i32mf2
, _i32
,
328 DEF_RVV_TYPE (vuint32mf2_t
, 17, __rvv_uint32mf2_t
, uint32
, RVVMF2SI
, _u32mf2
,
330 /* Define tuple types for SEW
= 32, LMUL
= MF2.
*/
331 DEF_RVV_TUPLE_TYPE (vint32mf2x2_t
, 18, __rvv_int32mf2x2_t
, vint32mf2_t
, int32
, 2, _i32mf2x2
)
332 DEF_RVV_TUPLE_TYPE (vuint32mf2x2_t
, 19, __rvv_uint32mf2x2_t
, vuint32mf2_t
, uint32
, 2, _u32mf2x2
)
333 DEF_RVV_TUPLE_TYPE (vint32mf2x3_t
, 18, __rvv_int32mf2x3_t
, vint32mf2_t
, int32
, 3, _i32mf2x3
)
334 DEF_RVV_TUPLE_TYPE (vuint32mf2x3_t
, 19, __rvv_uint32mf2x3_t
, vuint32mf2_t
, uint32
, 3, _u32mf2x3
)
335 DEF_RVV_TUPLE_TYPE (vint32mf2x4_t
, 18, __rvv_int32mf2x4_t
, vint32mf2_t
, int32
, 4, _i32mf2x4
)
336 DEF_RVV_TUPLE_TYPE (vuint32mf2x4_t
, 19, __rvv_uint32mf2x4_t
, vuint32mf2_t
, uint32
, 4, _u32mf2x4
)
337 DEF_RVV_TUPLE_TYPE (vint32mf2x5_t
, 18, __rvv_int32mf2x5_t
, vint32mf2_t
, int32
, 5, _i32mf2x5
)
338 DEF_RVV_TUPLE_TYPE (vuint32mf2x5_t
, 19, __rvv_uint32mf2x5_t
, vuint32mf2_t
, uint32
, 5, _u32mf2x5
)
339 DEF_RVV_TUPLE_TYPE (vint32mf2x6_t
, 18, __rvv_int32mf2x6_t
, vint32mf2_t
, int32
, 6, _i32mf2x6
)
340 DEF_RVV_TUPLE_TYPE (vuint32mf2x6_t
, 19, __rvv_uint32mf2x6_t
, vuint32mf2_t
, uint32
, 6, _u32mf2x6
)
341 DEF_RVV_TUPLE_TYPE (vint32mf2x7_t
, 18, __rvv_int32mf2x7_t
, vint32mf2_t
, int32
, 7, _i32mf2x7
)
342 DEF_RVV_TUPLE_TYPE (vuint32mf2x7_t
, 19, __rvv_uint32mf2x7_t
, vuint32mf2_t
, uint32
, 7, _u32mf2x7
)
343 DEF_RVV_TUPLE_TYPE (vint32mf2x8_t
, 18, __rvv_int32mf2x8_t
, vint32mf2_t
, int32
, 8, _i32mf2x8
)
344 DEF_RVV_TUPLE_TYPE (vuint32mf2x8_t
, 19, __rvv_uint32mf2x8_t
, vuint32mf2_t
, uint32
, 8, _u32mf2x8
)
346 Machine mode
= RVVM1SImode.
*/
347 DEF_RVV_TYPE (vint32m1_t
, 15, __rvv_int32m1_t
, int32
, RVVM1SI
, _i32m1
, _i32
,
349 DEF_RVV_TYPE (vuint32m1_t
, 16, __rvv_uint32m1_t
, uint32
, RVVM1SI
, _u32m1
, _u32
,
351 /* Define tuple types for SEW
= 32, LMUL
= M1.
*/
352 DEF_RVV_TUPLE_TYPE (vint32m1x2_t
, 17, __rvv_int32m1x2_t
, vint32m1_t
, int32
, 2, _i32m1x2
)
353 DEF_RVV_TUPLE_TYPE (vuint32m1x2_t
, 18, __rvv_uint32m1x2_t
, vuint32m1_t
, uint32
, 2, _u32m1x2
)
354 DEF_RVV_TUPLE_TYPE (vint32m1x3_t
, 17, __rvv_int32m1x3_t
, vint32m1_t
, int32
, 3, _i32m1x3
)
355 DEF_RVV_TUPLE_TYPE (vuint32m1x3_t
, 18, __rvv_uint32m1x3_t
, vuint32m1_t
, uint32
, 3, _u32m1x3
)
356 DEF_RVV_TUPLE_TYPE (vint32m1x4_t
, 17, __rvv_int32m1x4_t
, vint32m1_t
, int32
, 4, _i32m1x4
)
357 DEF_RVV_TUPLE_TYPE (vuint32m1x4_t
, 18, __rvv_uint32m1x4_t
, vuint32m1_t
, uint32
, 4, _u32m1x4
)
358 DEF_RVV_TUPLE_TYPE (vint32m1x5_t
, 17, __rvv_int32m1x5_t
, vint32m1_t
, int32
, 5, _i32m1x5
)
359 DEF_RVV_TUPLE_TYPE (vuint32m1x5_t
, 18, __rvv_uint32m1x5_t
, vuint32m1_t
, uint32
, 5, _u32m1x5
)
360 DEF_RVV_TUPLE_TYPE (vint32m1x6_t
, 17, __rvv_int32m1x6_t
, vint32m1_t
, int32
, 6, _i32m1x6
)
361 DEF_RVV_TUPLE_TYPE (vuint32m1x6_t
, 18, __rvv_uint32m1x6_t
, vuint32m1_t
, uint32
, 6, _u32m1x6
)
362 DEF_RVV_TUPLE_TYPE (vint32m1x7_t
, 17, __rvv_int32m1x7_t
, vint32m1_t
, int32
, 7, _i32m1x7
)
363 DEF_RVV_TUPLE_TYPE (vuint32m1x7_t
, 18, __rvv_uint32m1x7_t
, vuint32m1_t
, uint32
, 7, _u32m1x7
)
364 DEF_RVV_TUPLE_TYPE (vint32m1x8_t
, 17, __rvv_int32m1x8_t
, vint32m1_t
, int32
, 8, _i32m1x8
)
365 DEF_RVV_TUPLE_TYPE (vuint32m1x8_t
, 18, __rvv_uint32m1x8_t
, vuint32m1_t
, uint32
, 8, _u32m1x8
)
367 Machine mode
= RVVM2SImode.
*/
368 DEF_RVV_TYPE (vint32m2_t
, 15, __rvv_int32m2_t
, int32
, RVVM2SI
, _i32m2
, _i32
,
370 DEF_RVV_TYPE (vuint32m2_t
, 16, __rvv_uint32m2_t
, uint32
, RVVM2SI
, _u32m2
, _u32
,
372 /* Define tuple types for SEW
= 32, LMUL
= M2.
*/
373 DEF_RVV_TUPLE_TYPE (vint32m2x2_t
, 17, __rvv_int32m2x2_t
, vint32m2_t
, int32
, 2, _i32m2x2
)
374 DEF_RVV_TUPLE_TYPE (vuint32m2x2_t
, 18, __rvv_uint32m2x2_t
, vuint32m2_t
, uint32
, 2, _u32m2x2
)
375 DEF_RVV_TUPLE_TYPE (vint32m2x3_t
, 17, __rvv_int32m2x3_t
, vint32m2_t
, int32
, 3, _i32m2x3
)
376 DEF_RVV_TUPLE_TYPE (vuint32m2x3_t
, 18, __rvv_uint32m2x3_t
, vuint32m2_t
, uint32
, 3, _u32m2x3
)
377 DEF_RVV_TUPLE_TYPE (vint32m2x4_t
, 17, __rvv_int32m2x4_t
, vint32m2_t
, int32
, 4, _i32m2x4
)
378 DEF_RVV_TUPLE_TYPE (vuint32m2x4_t
, 18, __rvv_uint32m2x4_t
, vuint32m2_t
, uint32
, 4, _u32m2x4
)
380 Machine mode
= RVVM4SImode.
*/
381 DEF_RVV_TYPE (vint32m4_t
, 15, __rvv_int32m4_t
, int32
, RVVM4SI
, _i32m4
, _i32
,
383 DEF_RVV_TYPE (vuint32m4_t
, 16, __rvv_uint32m4_t
, uint32
, RVVM4SI
, _u32m4
, _u32
,
385 /* Define tuple types for SEW
= 32, LMUL
= M4.
*/
386 DEF_RVV_TUPLE_TYPE (vint32m4x2_t
, 17, __rvv_int32m4x2_t
, vint32m4_t
, int32
, 2, _i32m4x2
)
387 DEF_RVV_TUPLE_TYPE (vuint32m4x2_t
, 18, __rvv_uint32m4x2_t
, vuint32m4_t
, uint32
, 2, _u32m4x2
)
389 Machine mode
= RVVM8SImode.
*/
390 DEF_RVV_TYPE (vint32m8_t
, 15, __rvv_int32m8_t
, int32
, RVVM8SI
, _i32m8
, _i32
,
392 DEF_RVV_TYPE (vuint32m8_t
, 16, __rvv_uint32m8_t
, uint32
, RVVM8SI
, _u32m8
, _u32
,
396 Disable when
!TARGET_VECTOR_ELEN_64.
*/
397 DEF_RVV_TYPE (vint64m1_t
, 15, __rvv_int64m1_t
, int64
, RVVM1DI
, _i64m1
, _i64
,
399 DEF_RVV_TYPE (vuint64m1_t
, 16, __rvv_uint64m1_t
, uint64
, RVVM1DI
, _u64m1
, _u64
,
401 /* Define tuple types for SEW
= 64, LMUL
= M1.
*/
402 DEF_RVV_TUPLE_TYPE (vint64m1x2_t
, 17, __rvv_int64m1x2_t
, vint64m1_t
, int64
, 2, _i64m1x2
)
403 DEF_RVV_TUPLE_TYPE (vuint64m1x2_t
, 18, __rvv_uint64m1x2_t
, vuint64m1_t
, uint64
, 2, _u64m1x2
)
404 DEF_RVV_TUPLE_TYPE (vint64m1x3_t
, 17, __rvv_int64m1x3_t
, vint64m1_t
, int64
, 3, _i64m1x3
)
405 DEF_RVV_TUPLE_TYPE (vuint64m1x3_t
, 18, __rvv_uint64m1x3_t
, vuint64m1_t
, uint64
, 3, _u64m1x3
)
406 DEF_RVV_TUPLE_TYPE (vint64m1x4_t
, 17, __rvv_int64m1x4_t
, vint64m1_t
, int64
, 4, _i64m1x4
)
407 DEF_RVV_TUPLE_TYPE (vuint64m1x4_t
, 18, __rvv_uint64m1x4_t
, vuint64m1_t
, uint64
, 4, _u64m1x4
)
408 DEF_RVV_TUPLE_TYPE (vint64m1x5_t
, 17, __rvv_int64m1x5_t
, vint64m1_t
, int64
, 5, _i64m1x5
)
409 DEF_RVV_TUPLE_TYPE (vuint64m1x5_t
, 18, __rvv_uint64m1x5_t
, vuint64m1_t
, uint64
, 5, _u64m1x5
)
410 DEF_RVV_TUPLE_TYPE (vint64m1x6_t
, 17, __rvv_int64m1x6_t
, vint64m1_t
, int64
, 6, _i64m1x6
)
411 DEF_RVV_TUPLE_TYPE (vuint64m1x6_t
, 18, __rvv_uint64m1x6_t
, vuint64m1_t
, uint64
, 6, _u64m1x6
)
412 DEF_RVV_TUPLE_TYPE (vint64m1x7_t
, 17, __rvv_int64m1x7_t
, vint64m1_t
, int64
, 7, _i64m1x7
)
413 DEF_RVV_TUPLE_TYPE (vuint64m1x7_t
, 18, __rvv_uint64m1x7_t
, vuint64m1_t
, uint64
, 7, _u64m1x7
)
414 DEF_RVV_TUPLE_TYPE (vint64m1x8_t
, 17, __rvv_int64m1x8_t
, vint64m1_t
, int64
, 8, _i64m1x8
)
415 DEF_RVV_TUPLE_TYPE (vuint64m1x8_t
, 18, __rvv_uint64m1x8_t
, vuint64m1_t
, uint64
, 8, _u64m1x8
)
416 DEF_RVV_TYPE (vint64m2_t
, 15, __rvv_int64m2_t
, int64
, RVVM2DI
, _i64m2
, _i64
,
418 DEF_RVV_TYPE (vuint64m2_t
, 16, __rvv_uint64m2_t
, uint64
, RVVM2DI
, _u64m2
, _u64
,
420 /* Define tuple types for SEW
= 64, LMUL
= M2.
*/
421 DEF_RVV_TUPLE_TYPE (vint64m2x2_t
, 17, __rvv_int64m2x2_t
, vint64m2_t
, int64
, 2, _i64m2x2
)
422 DEF_RVV_TUPLE_TYPE (vuint64m2x2_t
, 18, __rvv_uint64m2x2_t
, vuint64m2_t
, uint64
, 2, _u64m2x2
)
423 DEF_RVV_TUPLE_TYPE (vint64m2x3_t
, 17, __rvv_int64m2x3_t
, vint64m2_t
, int64
, 3, _i64m2x3
)
424 DEF_RVV_TUPLE_TYPE (vuint64m2x3_t
, 18, __rvv_uint64m2x3_t
, vuint64m2_t
, uint64
, 3, _u64m2x3
)
425 DEF_RVV_TUPLE_TYPE (vint64m2x4_t
, 17, __rvv_int64m2x4_t
, vint64m2_t
, int64
, 4, _i64m2x4
)
426 DEF_RVV_TUPLE_TYPE (vuint64m2x4_t
, 18, __rvv_uint64m2x4_t
, vuint64m2_t
, uint64
, 4, _u64m2x4
)
427 DEF_RVV_TYPE (vint64m4_t
, 15, __rvv_int64m4_t
, int64
, RVVM4DI
, _i64m4
, _i64
,
429 DEF_RVV_TYPE (vuint64m4_t
, 16, __rvv_uint64m4_t
, uint64
, RVVM4DI
, _u64m4
, _u64
,
431 /* Define tuple types for SEW
= 64, LMUL
= M4.
*/
432 DEF_RVV_TUPLE_TYPE (vint64m4x2_t
, 17, __rvv_int64m4x2_t
, vint64m4_t
, int64
, 2, _i64m4x2
)
433 DEF_RVV_TUPLE_TYPE (vuint64m4x2_t
, 18, __rvv_uint64m4x2_t
, vuint64m4_t
, uint64
, 2, _u64m4x2
)
434 DEF_RVV_TYPE (vint64m8_t
, 15, __rvv_int64m8_t
, int64
, RVVM8DI
, _i64m8
, _i64
,
436 DEF_RVV_TYPE (vuint64m8_t
, 16, __rvv_uint64m8_t
, uint64
, RVVM8DI
, _u64m8
, _u64
,
439 /* Enabled if TARGET_VECTOR_ELEN_FP_16
&& (TARGET_ZVFH or TARGET_ZVFHMIN
).
*/
441 DEF_RVV_TYPE (vfloat16mf4_t
, 18, __rvv_float16mf4_t
, float16
, RVVMF4HF
, _f16mf4
,
443 /* Define tuple types for SEW
= 16, LMUL
= MF4.
*/
444 DEF_RVV_TUPLE_TYPE (vfloat16mf4x2_t
, 20, __rvv_float16mf4x2_t
, vfloat16mf4_t
, float16
, 2, _f16mf4x2
)
445 DEF_RVV_TUPLE_TYPE (vfloat16mf4x3_t
, 20, __rvv_float16mf4x3_t
, vfloat16mf4_t
, float16
, 3, _f16mf4x3
)
446 DEF_RVV_TUPLE_TYPE (vfloat16mf4x4_t
, 20, __rvv_float16mf4x4_t
, vfloat16mf4_t
, float16
, 4, _f16mf4x4
)
447 DEF_RVV_TUPLE_TYPE (vfloat16mf4x5_t
, 20, __rvv_float16mf4x5_t
, vfloat16mf4_t
, float16
, 5, _f16mf4x5
)
448 DEF_RVV_TUPLE_TYPE (vfloat16mf4x6_t
, 20, __rvv_float16mf4x6_t
, vfloat16mf4_t
, float16
, 6, _f16mf4x6
)
449 DEF_RVV_TUPLE_TYPE (vfloat16mf4x7_t
, 20, __rvv_float16mf4x7_t
, vfloat16mf4_t
, float16
, 7, _f16mf4x7
)
450 DEF_RVV_TUPLE_TYPE (vfloat16mf4x8_t
, 20, __rvv_float16mf4x8_t
, vfloat16mf4_t
, float16
, 8, _f16mf4x8
)
452 DEF_RVV_TYPE (vfloat16mf2_t
, 18, __rvv_float16mf2_t
, float16
, RVVMF2HF
, _f16mf2
,
454 /* Define tuple types for SEW
= 16, LMUL
= MF2.
*/
455 DEF_RVV_TUPLE_TYPE (vfloat16mf2x2_t
, 20, __rvv_float16mf2x2_t
, vfloat16mf2_t
, float16
, 2, _f16mf2x2
)
456 DEF_RVV_TUPLE_TYPE (vfloat16mf2x3_t
, 20, __rvv_float16mf2x3_t
, vfloat16mf2_t
, float16
, 3, _f16mf2x3
)
457 DEF_RVV_TUPLE_TYPE (vfloat16mf2x4_t
, 20, __rvv_float16mf2x4_t
, vfloat16mf2_t
, float16
, 4, _f16mf2x4
)
458 DEF_RVV_TUPLE_TYPE (vfloat16mf2x5_t
, 20, __rvv_float16mf2x5_t
, vfloat16mf2_t
, float16
, 5, _f16mf2x5
)
459 DEF_RVV_TUPLE_TYPE (vfloat16mf2x6_t
, 20, __rvv_float16mf2x6_t
, vfloat16mf2_t
, float16
, 6, _f16mf2x6
)
460 DEF_RVV_TUPLE_TYPE (vfloat16mf2x7_t
, 20, __rvv_float16mf2x7_t
, vfloat16mf2_t
, float16
, 7, _f16mf2x7
)
461 DEF_RVV_TUPLE_TYPE (vfloat16mf2x8_t
, 20, __rvv_float16mf2x8_t
, vfloat16mf2_t
, float16
, 8, _f16mf2x8
)
463 DEF_RVV_TYPE (vfloat16m1_t
, 17, __rvv_float16m1_t
, float16
, RVVM1HF
, _f16m1
,
465 /* Define tuple types for SEW
= 16, LMUL
= M1.
*/
466 DEF_RVV_TUPLE_TYPE (vfloat16m1x2_t
, 19, __rvv_float16m1x2_t
, vfloat16m1_t
, float16
, 2, _f16m1x2
)
467 DEF_RVV_TUPLE_TYPE (vfloat16m1x3_t
, 19, __rvv_float16m1x3_t
, vfloat16m1_t
, float16
, 3, _f16m1x3
)
468 DEF_RVV_TUPLE_TYPE (vfloat16m1x4_t
, 19, __rvv_float16m1x4_t
, vfloat16m1_t
, float16
, 4, _f16m1x4
)
469 DEF_RVV_TUPLE_TYPE (vfloat16m1x5_t
, 19, __rvv_float16m1x5_t
, vfloat16m1_t
, float16
, 5, _f16m1x5
)
470 DEF_RVV_TUPLE_TYPE (vfloat16m1x6_t
, 19, __rvv_float16m1x6_t
, vfloat16m1_t
, float16
, 6, _f16m1x6
)
471 DEF_RVV_TUPLE_TYPE (vfloat16m1x7_t
, 19, __rvv_float16m1x7_t
, vfloat16m1_t
, float16
, 7, _f16m1x7
)
472 DEF_RVV_TUPLE_TYPE (vfloat16m1x8_t
, 19, __rvv_float16m1x8_t
, vfloat16m1_t
, float16
, 8, _f16m1x8
)
474 DEF_RVV_TYPE (vfloat16m2_t
, 17, __rvv_float16m2_t
, float16
, RVVM2HF
, _f16m2
,
476 /* Define tuple types for SEW
= 16, LMUL
= M2.
*/
477 DEF_RVV_TUPLE_TYPE (vfloat16m2x2_t
, 19, __rvv_float16m2x2_t
, vfloat16m2_t
, float16
, 2, _f16m2x2
)
478 DEF_RVV_TUPLE_TYPE (vfloat16m2x3_t
, 19, __rvv_float16m2x3_t
, vfloat16m2_t
, float16
, 3, _f16m2x3
)
479 DEF_RVV_TUPLE_TYPE (vfloat16m2x4_t
, 19, __rvv_float16m2x4_t
, vfloat16m2_t
, float16
, 4, _f16m2x4
)
481 DEF_RVV_TYPE (vfloat16m4_t
, 17, __rvv_float16m4_t
, float16
, RVVM4HF
, _f16m4
,
483 /* Define tuple types for SEW
= 16, LMUL
= M4.
*/
484 DEF_RVV_TUPLE_TYPE (vfloat16m4x2_t
, 19, __rvv_float16m4x2_t
, vfloat16m4_t
, float16
, 2, _f16m4x2
)
486 DEF_RVV_TYPE (vfloat16m8_t
, 17, __rvv_float16m8_t
, float16
, RVVM8HF
, _f16m8
,
489 /* Disable all when
!TARGET_VECTOR_ELEN_FP_32.
*/
491 Only enble when TARGET_MIN_VLEN
> 32.
492 Machine mode
= RVVMF2SFmode.
*/
493 DEF_RVV_TYPE (vfloat32mf2_t
, 18, __rvv_float32mf2_t
, float
, RVVMF2SF
, _f32mf2
,
495 /* Define tuple types for SEW
= 32, LMUL
= MF2.
*/
496 DEF_RVV_TUPLE_TYPE (vfloat32mf2x2_t
, 20, __rvv_float32mf2x2_t
, vfloat32mf2_t
, float
, 2, _f32mf2x2
)
497 DEF_RVV_TUPLE_TYPE (vfloat32mf2x3_t
, 20, __rvv_float32mf2x3_t
, vfloat32mf2_t
, float
, 3, _f32mf2x3
)
498 DEF_RVV_TUPLE_TYPE (vfloat32mf2x4_t
, 20, __rvv_float32mf2x4_t
, vfloat32mf2_t
, float
, 4, _f32mf2x4
)
499 DEF_RVV_TUPLE_TYPE (vfloat32mf2x5_t
, 20, __rvv_float32mf2x5_t
, vfloat32mf2_t
, float
, 5, _f32mf2x5
)
500 DEF_RVV_TUPLE_TYPE (vfloat32mf2x6_t
, 20, __rvv_float32mf2x6_t
, vfloat32mf2_t
, float
, 6, _f32mf2x6
)
501 DEF_RVV_TUPLE_TYPE (vfloat32mf2x7_t
, 20, __rvv_float32mf2x7_t
, vfloat32mf2_t
, float
, 7, _f32mf2x7
)
502 DEF_RVV_TUPLE_TYPE (vfloat32mf2x8_t
, 20, __rvv_float32mf2x8_t
, vfloat32mf2_t
, float
, 8, _f32mf2x8
)
504 Machine mode
= RVVM1SFmode.
*/
505 DEF_RVV_TYPE (vfloat32m1_t
, 17, __rvv_float32m1_t
, float
, RVVM1SF
, _f32m1
, _f32
,
507 /* Define tuple types for SEW
= 32, LMUL
= M1.
*/
508 DEF_RVV_TUPLE_TYPE (vfloat32m1x2_t
, 19, __rvv_float32m1x2_t
, vfloat32m1_t
, float
, 2, _f32m1x2
)
509 DEF_RVV_TUPLE_TYPE (vfloat32m1x3_t
, 19, __rvv_float32m1x3_t
, vfloat32m1_t
, float
, 3, _f32m1x3
)
510 DEF_RVV_TUPLE_TYPE (vfloat32m1x4_t
, 19, __rvv_float32m1x4_t
, vfloat32m1_t
, float
, 4, _f32m1x4
)
511 DEF_RVV_TUPLE_TYPE (vfloat32m1x5_t
, 19, __rvv_float32m1x5_t
, vfloat32m1_t
, float
, 5, _f32m1x5
)
512 DEF_RVV_TUPLE_TYPE (vfloat32m1x6_t
, 19, __rvv_float32m1x6_t
, vfloat32m1_t
, float
, 6, _f32m1x6
)
513 DEF_RVV_TUPLE_TYPE (vfloat32m1x7_t
, 19, __rvv_float32m1x7_t
, vfloat32m1_t
, float
, 7, _f32m1x7
)
514 DEF_RVV_TUPLE_TYPE (vfloat32m1x8_t
, 19, __rvv_float32m1x8_t
, vfloat32m1_t
, float
, 8, _f32m1x8
)
516 Machine mode
= RVVM2SFmode.
*/
517 DEF_RVV_TYPE (vfloat32m2_t
, 17, __rvv_float32m2_t
, float
, RVVM2SF
, _f32m2
, _f32
,
519 /* Define tuple types for SEW
= 32, LMUL
= M2.
*/
520 DEF_RVV_TUPLE_TYPE (vfloat32m2x2_t
, 19, __rvv_float32m2x2_t
, vfloat32m2_t
, float
, 2, _f32m2x2
)
521 DEF_RVV_TUPLE_TYPE (vfloat32m2x3_t
, 19, __rvv_float32m2x3_t
, vfloat32m2_t
, float
, 3, _f32m2x3
)
522 DEF_RVV_TUPLE_TYPE (vfloat32m2x4_t
, 19, __rvv_float32m2x4_t
, vfloat32m2_t
, float
, 4, _f32m2x4
)
524 Machine mode
= RVVM4SFmode.
*/
525 DEF_RVV_TYPE (vfloat32m4_t
, 17, __rvv_float32m4_t
, float
, RVVM4SF
, _f32m4
, _f32
,
527 /* Define tuple types for SEW
= 32, LMUL
= M4.
*/
528 DEF_RVV_TUPLE_TYPE (vfloat32m4x2_t
, 19, __rvv_float32m4x2_t
, vfloat32m4_t
, float
, 2, _f32m4x2
)
530 Machine mode
= RVVM8SFmode.
*/
531 DEF_RVV_TYPE (vfloat32m8_t
, 17, __rvv_float32m8_t
, float
, RVVM8SF
, _f32m8
, _f32
,
535 Disable when
!TARGET_VECTOR_ELEN_FP_64.
*/
536 DEF_RVV_TYPE (vfloat64m1_t
, 17, __rvv_float64m1_t
, double
, RVVM1DF
, _f64m1
,
538 /* Define tuple types for SEW
= 64, LMUL
= M1.
*/
539 DEF_RVV_TUPLE_TYPE (vfloat64m1x2_t
, 19, __rvv_float64m1x2_t
, vfloat64m1_t
, double
, 2, _f64m1x2
)
540 DEF_RVV_TUPLE_TYPE (vfloat64m1x3_t
, 19, __rvv_float64m1x3_t
, vfloat64m1_t
, double
, 3, _f64m1x3
)
541 DEF_RVV_TUPLE_TYPE (vfloat64m1x4_t
, 19, __rvv_float64m1x4_t
, vfloat64m1_t
, double
, 4, _f64m1x4
)
542 DEF_RVV_TUPLE_TYPE (vfloat64m1x5_t
, 19, __rvv_float64m1x5_t
, vfloat64m1_t
, double
, 5, _f64m1x5
)
543 DEF_RVV_TUPLE_TYPE (vfloat64m1x6_t
, 19, __rvv_float64m1x6_t
, vfloat64m1_t
, double
, 6, _f64m1x6
)
544 DEF_RVV_TUPLE_TYPE (vfloat64m1x7_t
, 19, __rvv_float64m1x7_t
, vfloat64m1_t
, double
, 7, _f64m1x7
)
545 DEF_RVV_TUPLE_TYPE (vfloat64m1x8_t
, 19, __rvv_float64m1x8_t
, vfloat64m1_t
, double
, 8, _f64m1x8
)
546 DEF_RVV_TYPE (vfloat64m2_t
, 17, __rvv_float64m2_t
, double
, RVVM2DF
, _f64m2
,
548 /* Define tuple types for SEW
= 64, LMUL
= M2.
*/
549 DEF_RVV_TUPLE_TYPE (vfloat64m2x2_t
, 19, __rvv_float64m2x2_t
, vfloat64m2_t
, double
, 2, _f64m2x2
)
550 DEF_RVV_TUPLE_TYPE (vfloat64m2x3_t
, 19, __rvv_float64m2x3_t
, vfloat64m2_t
, double
, 3, _f64m2x3
)
551 DEF_RVV_TUPLE_TYPE (vfloat64m2x4_t
, 19, __rvv_float64m2x4_t
, vfloat64m2_t
, double
, 4, _f64m2x4
)
552 DEF_RVV_TYPE (vfloat64m4_t
, 17, __rvv_float64m4_t
, double
, RVVM4DF
, _f64m4
,
554 /* Define tuple types for SEW
= 64, LMUL
= M4.
*/
555 DEF_RVV_TUPLE_TYPE (vfloat64m4x2_t
, 19, __rvv_float64m4x2_t
, vfloat64m4_t
, double
, 2, _f64m4x2
)
556 DEF_RVV_TYPE (vfloat64m8_t
, 17, __rvv_float64m8_t
, double
, RVVM8DF
, _f64m8
,
565 DEF_RVV_OP_TYPE (x_v
)
566 DEF_RVV_OP_TYPE (vf2
)
567 DEF_RVV_OP_TYPE (vf4
)
568 DEF_RVV_OP_TYPE (vf8
)
569 DEF_RVV_OP_TYPE (vvm
)
570 DEF_RVV_OP_TYPE (vxm
)
571 DEF_RVV_OP_TYPE (x_w
)
579 DEF_RVV_OP_TYPE (vfm
)
581 DEF_RVV_OP_TYPE (f_v
)
582 DEF_RVV_OP_TYPE (xu_v
)
583 DEF_RVV_OP_TYPE (f_w
)
584 DEF_RVV_OP_TYPE (xu_w
)
587 DEF_RVV_PRED_TYPE (ta
)
588 DEF_RVV_PRED_TYPE (tu
)
589 DEF_RVV_PRED_TYPE (ma
)
590 DEF_RVV_PRED_TYPE (mu
)
591 DEF_RVV_PRED_TYPE (tama
)
592 DEF_RVV_PRED_TYPE (tamu
)
593 DEF_RVV_PRED_TYPE (tuma
)
594 DEF_RVV_PRED_TYPE (tumu
)
595 DEF_RVV_PRED_TYPE (m
)
596 DEF_RVV_PRED_TYPE (tam
)
597 DEF_RVV_PRED_TYPE (tum
)
599 DEF_RVV_BASE_TYPE (vector
, builtin_types
[type_idx
].vector
)
600 DEF_RVV_BASE_TYPE (scalar
, builtin_types
[type_idx
].scalar
)
601 DEF_RVV_BASE_TYPE (mask
, get_vector_type (type_idx
))
602 DEF_RVV_BASE_TYPE (signed_vector
, get_vector_type (type_idx
))
603 DEF_RVV_BASE_TYPE (unsigned_vector
, get_vector_type (type_idx
))
604 /* According to riscv
-vector
-builtins
-types.def
, the unsigned
605 type is always the signed type
+ 1 (They have same SEW and LMUL
).
606 For example
'vuint8mf8_t' enum
= 'vint8mf8_t' enum
+ 1.
607 Note
: We dont
't allow type_idx to be unsigned type. */
608 DEF_RVV_BASE_TYPE (unsigned_scalar, builtin_types[type_idx + 1].scalar)
609 DEF_RVV_BASE_TYPE (vector_ptr, builtin_types[type_idx].vector_ptr)
610 /* According to the latest rvv-intrinsic-doc, it defines vsm.v intrinsic:
611 __riscv_vsm (uint8_t *base, vbool1_t value, size_t vl). */
612 DEF_RVV_BASE_TYPE (scalar_ptr, get_scalar_ptr_type (type_idx))
613 /* According to the latest rvv-intrinsic-doc, it defines vlm.v intrinsic:
614 __riscv_vlm_v_b1 (const uint8_t *base, size_t vl). */
615 DEF_RVV_BASE_TYPE (scalar_const_ptr, get_scalar_const_ptr_type (type_idx))
616 DEF_RVV_BASE_TYPE (void, void_type_node)
617 DEF_RVV_BASE_TYPE (size, size_type_node)
618 DEF_RVV_BASE_TYPE (ptrdiff, ptrdiff_type_node)
619 DEF_RVV_BASE_TYPE (unsigned_long, long_unsigned_type_node)
620 DEF_RVV_BASE_TYPE (long, long_integer_type_node)
621 DEF_RVV_BASE_TYPE (eew8_index, get_vector_type (type_idx))
622 DEF_RVV_BASE_TYPE (eew16_index, get_vector_type (type_idx))
623 DEF_RVV_BASE_TYPE (eew32_index, get_vector_type (type_idx))
624 DEF_RVV_BASE_TYPE (eew64_index, get_vector_type (type_idx))
625 DEF_RVV_BASE_TYPE (shift_vector, get_vector_type (type_idx))
626 DEF_RVV_BASE_TYPE (double_trunc_vector, get_vector_type (type_idx))
627 DEF_RVV_BASE_TYPE (quad_trunc_vector, get_vector_type (type_idx))
628 DEF_RVV_BASE_TYPE (oct_trunc_vector, get_vector_type (type_idx))
629 DEF_RVV_BASE_TYPE (double_trunc_scalar, get_scalar_type (type_idx))
630 DEF_RVV_BASE_TYPE (double_trunc_signed_vector, get_vector_type (type_idx))
631 DEF_RVV_BASE_TYPE (double_trunc_unsigned_vector, get_vector_type (type_idx))
632 DEF_RVV_BASE_TYPE (double_trunc_unsigned_scalar, get_scalar_type (type_idx))
633 DEF_RVV_BASE_TYPE (double_trunc_float_vector, get_vector_type (type_idx))
634 DEF_RVV_BASE_TYPE (float_vector, get_vector_type (type_idx))
635 DEF_RVV_BASE_TYPE (lmul1_vector, get_vector_type (type_idx))
636 DEF_RVV_BASE_TYPE (widen_lmul1_vector, get_vector_type (type_idx))
637 DEF_RVV_BASE_TYPE (eew8_interpret, get_vector_type (type_idx))
638 DEF_RVV_BASE_TYPE (eew16_interpret, get_vector_type (type_idx))
639 DEF_RVV_BASE_TYPE (eew32_interpret, get_vector_type (type_idx))
640 DEF_RVV_BASE_TYPE (eew64_interpret, get_vector_type (type_idx))
641 DEF_RVV_BASE_TYPE (bool1_interpret, get_vector_type (type_idx))
642 DEF_RVV_BASE_TYPE (bool2_interpret, get_vector_type (type_idx))
643 DEF_RVV_BASE_TYPE (bool4_interpret, get_vector_type (type_idx))
644 DEF_RVV_BASE_TYPE (bool8_interpret, get_vector_type (type_idx))
645 DEF_RVV_BASE_TYPE (bool16_interpret, get_vector_type (type_idx))
646 DEF_RVV_BASE_TYPE (bool32_interpret, get_vector_type (type_idx))
647 DEF_RVV_BASE_TYPE (bool64_interpret, get_vector_type (type_idx))
648 DEF_RVV_BASE_TYPE (signed_eew8_lmul1_interpret, get_vector_type (type_idx))
649 DEF_RVV_BASE_TYPE (signed_eew16_lmul1_interpret, get_vector_type (type_idx))
650 DEF_RVV_BASE_TYPE (signed_eew32_lmul1_interpret, get_vector_type (type_idx))
651 DEF_RVV_BASE_TYPE (signed_eew64_lmul1_interpret, get_vector_type (type_idx))
652 DEF_RVV_BASE_TYPE (unsigned_eew8_lmul1_interpret, get_vector_type (type_idx))
653 DEF_RVV_BASE_TYPE (unsigned_eew16_lmul1_interpret, get_vector_type (type_idx))
654 DEF_RVV_BASE_TYPE (unsigned_eew32_lmul1_interpret, get_vector_type (type_idx))
655 DEF_RVV_BASE_TYPE (unsigned_eew64_lmul1_interpret, get_vector_type (type_idx))
656 DEF_RVV_BASE_TYPE (vlmul_ext_x2, get_vector_type (type_idx))
657 DEF_RVV_BASE_TYPE (vlmul_ext_x4, get_vector_type (type_idx))
658 DEF_RVV_BASE_TYPE (vlmul_ext_x8, get_vector_type (type_idx))
659 DEF_RVV_BASE_TYPE (vlmul_ext_x16, get_vector_type (type_idx))
660 DEF_RVV_BASE_TYPE (vlmul_ext_x32, get_vector_type (type_idx))
661 DEF_RVV_BASE_TYPE (vlmul_ext_x64, get_vector_type (type_idx))
662 DEF_RVV_BASE_TYPE (size_ptr, build_pointer_type (size_type_node))
663 DEF_RVV_BASE_TYPE (tuple_subpart, get_tuple_subpart_type (type_idx))
665 DEF_RVV_VXRM_ENUM (RNU, VXRM_RNU)
666 DEF_RVV_VXRM_ENUM (RNE, VXRM_RNE)
667 DEF_RVV_VXRM_ENUM (RDN, VXRM_RDN)
668 DEF_RVV_VXRM_ENUM (ROD, VXRM_ROD)
670 DEF_RVV_FRM_ENUM (RNE, FRM_RNE)
671 DEF_RVV_FRM_ENUM (RTZ, FRM_RTZ)
672 DEF_RVV_FRM_ENUM (RDN, FRM_RDN)
673 DEF_RVV_FRM_ENUM (RUP, FRM_RUP)
674 DEF_RVV_FRM_ENUM (RMM, FRM_RMM)
676 #include "riscv-vector-type-indexer.gen.def"
678 #undef DEF_RVV_PRED_TYPE
679 #undef DEF_RVV_OP_TYPE
681 #undef DEF_RVV_TUPLE_TYPE
682 #undef DEF_RVV_BASE_TYPE
683 #undef DEF_RVV_TYPE_INDEX
684 #undef DEF_RVV_VXRM_ENUM
685 #undef DEF_RVV_FRM_ENUM