zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

riscv_vector.h (17525B) - Raw


      1 /*===---- riscv_vector.h - RISC-V V-extension RVVIntrinsics -------------------===
      2  *
      3  *
      4  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
      5  * See https://llvm.org/LICENSE.txt for license information.
      6  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
      7  *
      8  *===-----------------------------------------------------------------------===
      9  */
     10 
     11 #ifndef __RISCV_VECTOR_H
     12 #define __RISCV_VECTOR_H
     13 
     14 #include <stdint.h>
     15 #include <stddef.h>
     16 
     17 #ifdef __cplusplus
     18 extern "C" {
     19 #endif
     20 
     21 #pragma clang riscv intrinsic vector
     22 
     23 
     24 enum __RISCV_FRM {
     25   __RISCV_FRM_RNE = 0,
     26   __RISCV_FRM_RTZ = 1,
     27   __RISCV_FRM_RDN = 2,
     28   __RISCV_FRM_RUP = 3,
     29   __RISCV_FRM_RMM = 4,
     30 };
     31 
     32 #define __riscv_vlenb() __builtin_rvv_vlenb()
     33 
     34 #define __riscv_vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6)
     35 #define __riscv_vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7)
     36 #define __riscv_vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0)
     37 #define __riscv_vsetvl_e8m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 1)
     38 #define __riscv_vsetvl_e8m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 2)
     39 #define __riscv_vsetvl_e8m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 3)
     40 
     41 #define __riscv_vsetvl_e16mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 7)
     42 #define __riscv_vsetvl_e16m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 0)
     43 #define __riscv_vsetvl_e16m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 1)
     44 #define __riscv_vsetvl_e16m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 2)
     45 #define __riscv_vsetvl_e16m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 3)
     46 
     47 #define __riscv_vsetvl_e32m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 0)
     48 #define __riscv_vsetvl_e32m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 1)
     49 #define __riscv_vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2)
     50 #define __riscv_vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3)
     51 
     52 #if __riscv_v_elen >= 64
     53 #define __riscv_vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5)
     54 #define __riscv_vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6)
     55 #define __riscv_vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7)
     56 
     57 #define __riscv_vsetvl_e64m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 0)
     58 #define __riscv_vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1)
     59 #define __riscv_vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2)
     60 #define __riscv_vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3)
     61 #endif
     62 
     63 #define __riscv_vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6)
     64 #define __riscv_vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7)
     65 #define __riscv_vsetvlmax_e8m1() __builtin_rvv_vsetvlimax(0, 0)
     66 #define __riscv_vsetvlmax_e8m2() __builtin_rvv_vsetvlimax(0, 1)
     67 #define __riscv_vsetvlmax_e8m4() __builtin_rvv_vsetvlimax(0, 2)
     68 #define __riscv_vsetvlmax_e8m8() __builtin_rvv_vsetvlimax(0, 3)
     69 
     70 #define __riscv_vsetvlmax_e16mf2() __builtin_rvv_vsetvlimax(1, 7)
     71 #define __riscv_vsetvlmax_e16m1() __builtin_rvv_vsetvlimax(1, 0)
     72 #define __riscv_vsetvlmax_e16m2() __builtin_rvv_vsetvlimax(1, 1)
     73 #define __riscv_vsetvlmax_e16m4() __builtin_rvv_vsetvlimax(1, 2)
     74 #define __riscv_vsetvlmax_e16m8() __builtin_rvv_vsetvlimax(1, 3)
     75 
     76 #define __riscv_vsetvlmax_e32m1() __builtin_rvv_vsetvlimax(2, 0)
     77 #define __riscv_vsetvlmax_e32m2() __builtin_rvv_vsetvlimax(2, 1)
     78 #define __riscv_vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2)
     79 #define __riscv_vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3)
     80 
     81 #if __riscv_v_elen >= 64
     82 #define __riscv_vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5)
     83 #define __riscv_vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6)
     84 #define __riscv_vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7)
     85 
     86 #define __riscv_vsetvlmax_e64m1() __builtin_rvv_vsetvlimax(3, 0)
     87 #define __riscv_vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1)
     88 #define __riscv_vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2)
     89 #define __riscv_vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3)
     90 #endif
     91 
     92 
     93 enum __RISCV_VXRM {
     94   __RISCV_VXRM_RNU = 0,
     95   __RISCV_VXRM_RNE = 1,
     96   __RISCV_VXRM_RDN = 2,
     97   __RISCV_VXRM_ROD = 3,
     98 };
     99 typedef __rvv_bool64_t vbool64_t;
    100 typedef __rvv_bool32_t vbool32_t;
    101 typedef __rvv_bool16_t vbool16_t;
    102 typedef __rvv_bool8_t vbool8_t;
    103 typedef __rvv_bool4_t vbool4_t;
    104 typedef __rvv_bool2_t vbool2_t;
    105 typedef __rvv_bool1_t vbool1_t;
    106 typedef __rvv_int8mf8_t vint8mf8_t;
    107 typedef __rvv_uint8mf8_t vuint8mf8_t;
    108 typedef __rvv_int8mf8x2_t vint8mf8x2_t;
    109 typedef __rvv_uint8mf8x2_t vuint8mf8x2_t;
    110 typedef __rvv_int8mf8x3_t vint8mf8x3_t;
    111 typedef __rvv_uint8mf8x3_t vuint8mf8x3_t;
    112 typedef __rvv_int8mf8x4_t vint8mf8x4_t;
    113 typedef __rvv_uint8mf8x4_t vuint8mf8x4_t;
    114 typedef __rvv_int8mf8x5_t vint8mf8x5_t;
    115 typedef __rvv_uint8mf8x5_t vuint8mf8x5_t;
    116 typedef __rvv_int8mf8x6_t vint8mf8x6_t;
    117 typedef __rvv_uint8mf8x6_t vuint8mf8x6_t;
    118 typedef __rvv_int8mf8x7_t vint8mf8x7_t;
    119 typedef __rvv_uint8mf8x7_t vuint8mf8x7_t;
    120 typedef __rvv_int8mf8x8_t vint8mf8x8_t;
    121 typedef __rvv_uint8mf8x8_t vuint8mf8x8_t;
    122 typedef __rvv_int8mf4_t vint8mf4_t;
    123 typedef __rvv_uint8mf4_t vuint8mf4_t;
    124 typedef __rvv_int8mf4x2_t vint8mf4x2_t;
    125 typedef __rvv_uint8mf4x2_t vuint8mf4x2_t;
    126 typedef __rvv_int8mf4x3_t vint8mf4x3_t;
    127 typedef __rvv_uint8mf4x3_t vuint8mf4x3_t;
    128 typedef __rvv_int8mf4x4_t vint8mf4x4_t;
    129 typedef __rvv_uint8mf4x4_t vuint8mf4x4_t;
    130 typedef __rvv_int8mf4x5_t vint8mf4x5_t;
    131 typedef __rvv_uint8mf4x5_t vuint8mf4x5_t;
    132 typedef __rvv_int8mf4x6_t vint8mf4x6_t;
    133 typedef __rvv_uint8mf4x6_t vuint8mf4x6_t;
    134 typedef __rvv_int8mf4x7_t vint8mf4x7_t;
    135 typedef __rvv_uint8mf4x7_t vuint8mf4x7_t;
    136 typedef __rvv_int8mf4x8_t vint8mf4x8_t;
    137 typedef __rvv_uint8mf4x8_t vuint8mf4x8_t;
    138 typedef __rvv_int8mf2_t vint8mf2_t;
    139 typedef __rvv_uint8mf2_t vuint8mf2_t;
    140 typedef __rvv_int8mf2x2_t vint8mf2x2_t;
    141 typedef __rvv_uint8mf2x2_t vuint8mf2x2_t;
    142 typedef __rvv_int8mf2x3_t vint8mf2x3_t;
    143 typedef __rvv_uint8mf2x3_t vuint8mf2x3_t;
    144 typedef __rvv_int8mf2x4_t vint8mf2x4_t;
    145 typedef __rvv_uint8mf2x4_t vuint8mf2x4_t;
    146 typedef __rvv_int8mf2x5_t vint8mf2x5_t;
    147 typedef __rvv_uint8mf2x5_t vuint8mf2x5_t;
    148 typedef __rvv_int8mf2x6_t vint8mf2x6_t;
    149 typedef __rvv_uint8mf2x6_t vuint8mf2x6_t;
    150 typedef __rvv_int8mf2x7_t vint8mf2x7_t;
    151 typedef __rvv_uint8mf2x7_t vuint8mf2x7_t;
    152 typedef __rvv_int8mf2x8_t vint8mf2x8_t;
    153 typedef __rvv_uint8mf2x8_t vuint8mf2x8_t;
    154 typedef __rvv_int8m1_t vint8m1_t;
    155 typedef __rvv_uint8m1_t vuint8m1_t;
    156 typedef __rvv_int8m1x2_t vint8m1x2_t;
    157 typedef __rvv_uint8m1x2_t vuint8m1x2_t;
    158 typedef __rvv_int8m1x3_t vint8m1x3_t;
    159 typedef __rvv_uint8m1x3_t vuint8m1x3_t;
    160 typedef __rvv_int8m1x4_t vint8m1x4_t;
    161 typedef __rvv_uint8m1x4_t vuint8m1x4_t;
    162 typedef __rvv_int8m1x5_t vint8m1x5_t;
    163 typedef __rvv_uint8m1x5_t vuint8m1x5_t;
    164 typedef __rvv_int8m1x6_t vint8m1x6_t;
    165 typedef __rvv_uint8m1x6_t vuint8m1x6_t;
    166 typedef __rvv_int8m1x7_t vint8m1x7_t;
    167 typedef __rvv_uint8m1x7_t vuint8m1x7_t;
    168 typedef __rvv_int8m1x8_t vint8m1x8_t;
    169 typedef __rvv_uint8m1x8_t vuint8m1x8_t;
    170 typedef __rvv_int8m2_t vint8m2_t;
    171 typedef __rvv_uint8m2_t vuint8m2_t;
    172 typedef __rvv_int8m2x2_t vint8m2x2_t;
    173 typedef __rvv_uint8m2x2_t vuint8m2x2_t;
    174 typedef __rvv_int8m2x3_t vint8m2x3_t;
    175 typedef __rvv_uint8m2x3_t vuint8m2x3_t;
    176 typedef __rvv_int8m2x4_t vint8m2x4_t;
    177 typedef __rvv_uint8m2x4_t vuint8m2x4_t;
    178 typedef __rvv_int8m4_t vint8m4_t;
    179 typedef __rvv_uint8m4_t vuint8m4_t;
    180 typedef __rvv_int8m4x2_t vint8m4x2_t;
    181 typedef __rvv_uint8m4x2_t vuint8m4x2_t;
    182 typedef __rvv_int8m8_t vint8m8_t;
    183 typedef __rvv_uint8m8_t vuint8m8_t;
    184 typedef __rvv_int16mf4_t vint16mf4_t;
    185 typedef __rvv_uint16mf4_t vuint16mf4_t;
    186 typedef __rvv_int16mf4x2_t vint16mf4x2_t;
    187 typedef __rvv_uint16mf4x2_t vuint16mf4x2_t;
    188 typedef __rvv_int16mf4x3_t vint16mf4x3_t;
    189 typedef __rvv_uint16mf4x3_t vuint16mf4x3_t;
    190 typedef __rvv_int16mf4x4_t vint16mf4x4_t;
    191 typedef __rvv_uint16mf4x4_t vuint16mf4x4_t;
    192 typedef __rvv_int16mf4x5_t vint16mf4x5_t;
    193 typedef __rvv_uint16mf4x5_t vuint16mf4x5_t;
    194 typedef __rvv_int16mf4x6_t vint16mf4x6_t;
    195 typedef __rvv_uint16mf4x6_t vuint16mf4x6_t;
    196 typedef __rvv_int16mf4x7_t vint16mf4x7_t;
    197 typedef __rvv_uint16mf4x7_t vuint16mf4x7_t;
    198 typedef __rvv_int16mf4x8_t vint16mf4x8_t;
    199 typedef __rvv_uint16mf4x8_t vuint16mf4x8_t;
    200 typedef __rvv_int16mf2_t vint16mf2_t;
    201 typedef __rvv_uint16mf2_t vuint16mf2_t;
    202 typedef __rvv_int16mf2x2_t vint16mf2x2_t;
    203 typedef __rvv_uint16mf2x2_t vuint16mf2x2_t;
    204 typedef __rvv_int16mf2x3_t vint16mf2x3_t;
    205 typedef __rvv_uint16mf2x3_t vuint16mf2x3_t;
    206 typedef __rvv_int16mf2x4_t vint16mf2x4_t;
    207 typedef __rvv_uint16mf2x4_t vuint16mf2x4_t;
    208 typedef __rvv_int16mf2x5_t vint16mf2x5_t;
    209 typedef __rvv_uint16mf2x5_t vuint16mf2x5_t;
    210 typedef __rvv_int16mf2x6_t vint16mf2x6_t;
    211 typedef __rvv_uint16mf2x6_t vuint16mf2x6_t;
    212 typedef __rvv_int16mf2x7_t vint16mf2x7_t;
    213 typedef __rvv_uint16mf2x7_t vuint16mf2x7_t;
    214 typedef __rvv_int16mf2x8_t vint16mf2x8_t;
    215 typedef __rvv_uint16mf2x8_t vuint16mf2x8_t;
    216 typedef __rvv_int16m1_t vint16m1_t;
    217 typedef __rvv_uint16m1_t vuint16m1_t;
    218 typedef __rvv_int16m1x2_t vint16m1x2_t;
    219 typedef __rvv_uint16m1x2_t vuint16m1x2_t;
    220 typedef __rvv_int16m1x3_t vint16m1x3_t;
    221 typedef __rvv_uint16m1x3_t vuint16m1x3_t;
    222 typedef __rvv_int16m1x4_t vint16m1x4_t;
    223 typedef __rvv_uint16m1x4_t vuint16m1x4_t;
    224 typedef __rvv_int16m1x5_t vint16m1x5_t;
    225 typedef __rvv_uint16m1x5_t vuint16m1x5_t;
    226 typedef __rvv_int16m1x6_t vint16m1x6_t;
    227 typedef __rvv_uint16m1x6_t vuint16m1x6_t;
    228 typedef __rvv_int16m1x7_t vint16m1x7_t;
    229 typedef __rvv_uint16m1x7_t vuint16m1x7_t;
    230 typedef __rvv_int16m1x8_t vint16m1x8_t;
    231 typedef __rvv_uint16m1x8_t vuint16m1x8_t;
    232 typedef __rvv_int16m2_t vint16m2_t;
    233 typedef __rvv_uint16m2_t vuint16m2_t;
    234 typedef __rvv_int16m2x2_t vint16m2x2_t;
    235 typedef __rvv_uint16m2x2_t vuint16m2x2_t;
    236 typedef __rvv_int16m2x3_t vint16m2x3_t;
    237 typedef __rvv_uint16m2x3_t vuint16m2x3_t;
    238 typedef __rvv_int16m2x4_t vint16m2x4_t;
    239 typedef __rvv_uint16m2x4_t vuint16m2x4_t;
    240 typedef __rvv_int16m4_t vint16m4_t;
    241 typedef __rvv_uint16m4_t vuint16m4_t;
    242 typedef __rvv_int16m4x2_t vint16m4x2_t;
    243 typedef __rvv_uint16m4x2_t vuint16m4x2_t;
    244 typedef __rvv_int16m8_t vint16m8_t;
    245 typedef __rvv_uint16m8_t vuint16m8_t;
    246 typedef __rvv_int32mf2_t vint32mf2_t;
    247 typedef __rvv_uint32mf2_t vuint32mf2_t;
    248 typedef __rvv_int32mf2x2_t vint32mf2x2_t;
    249 typedef __rvv_uint32mf2x2_t vuint32mf2x2_t;
    250 typedef __rvv_int32mf2x3_t vint32mf2x3_t;
    251 typedef __rvv_uint32mf2x3_t vuint32mf2x3_t;
    252 typedef __rvv_int32mf2x4_t vint32mf2x4_t;
    253 typedef __rvv_uint32mf2x4_t vuint32mf2x4_t;
    254 typedef __rvv_int32mf2x5_t vint32mf2x5_t;
    255 typedef __rvv_uint32mf2x5_t vuint32mf2x5_t;
    256 typedef __rvv_int32mf2x6_t vint32mf2x6_t;
    257 typedef __rvv_uint32mf2x6_t vuint32mf2x6_t;
    258 typedef __rvv_int32mf2x7_t vint32mf2x7_t;
    259 typedef __rvv_uint32mf2x7_t vuint32mf2x7_t;
    260 typedef __rvv_int32mf2x8_t vint32mf2x8_t;
    261 typedef __rvv_uint32mf2x8_t vuint32mf2x8_t;
    262 typedef __rvv_int32m1_t vint32m1_t;
    263 typedef __rvv_uint32m1_t vuint32m1_t;
    264 typedef __rvv_int32m1x2_t vint32m1x2_t;
    265 typedef __rvv_uint32m1x2_t vuint32m1x2_t;
    266 typedef __rvv_int32m1x3_t vint32m1x3_t;
    267 typedef __rvv_uint32m1x3_t vuint32m1x3_t;
    268 typedef __rvv_int32m1x4_t vint32m1x4_t;
    269 typedef __rvv_uint32m1x4_t vuint32m1x4_t;
    270 typedef __rvv_int32m1x5_t vint32m1x5_t;
    271 typedef __rvv_uint32m1x5_t vuint32m1x5_t;
    272 typedef __rvv_int32m1x6_t vint32m1x6_t;
    273 typedef __rvv_uint32m1x6_t vuint32m1x6_t;
    274 typedef __rvv_int32m1x7_t vint32m1x7_t;
    275 typedef __rvv_uint32m1x7_t vuint32m1x7_t;
    276 typedef __rvv_int32m1x8_t vint32m1x8_t;
    277 typedef __rvv_uint32m1x8_t vuint32m1x8_t;
    278 typedef __rvv_int32m2_t vint32m2_t;
    279 typedef __rvv_uint32m2_t vuint32m2_t;
    280 typedef __rvv_int32m2x2_t vint32m2x2_t;
    281 typedef __rvv_uint32m2x2_t vuint32m2x2_t;
    282 typedef __rvv_int32m2x3_t vint32m2x3_t;
    283 typedef __rvv_uint32m2x3_t vuint32m2x3_t;
    284 typedef __rvv_int32m2x4_t vint32m2x4_t;
    285 typedef __rvv_uint32m2x4_t vuint32m2x4_t;
    286 typedef __rvv_int32m4_t vint32m4_t;
    287 typedef __rvv_uint32m4_t vuint32m4_t;
    288 typedef __rvv_int32m4x2_t vint32m4x2_t;
    289 typedef __rvv_uint32m4x2_t vuint32m4x2_t;
    290 typedef __rvv_int32m8_t vint32m8_t;
    291 typedef __rvv_uint32m8_t vuint32m8_t;
    292 typedef __rvv_int64m1_t vint64m1_t;
    293 typedef __rvv_uint64m1_t vuint64m1_t;
    294 typedef __rvv_int64m1x2_t vint64m1x2_t;
    295 typedef __rvv_uint64m1x2_t vuint64m1x2_t;
    296 typedef __rvv_int64m1x3_t vint64m1x3_t;
    297 typedef __rvv_uint64m1x3_t vuint64m1x3_t;
    298 typedef __rvv_int64m1x4_t vint64m1x4_t;
    299 typedef __rvv_uint64m1x4_t vuint64m1x4_t;
    300 typedef __rvv_int64m1x5_t vint64m1x5_t;
    301 typedef __rvv_uint64m1x5_t vuint64m1x5_t;
    302 typedef __rvv_int64m1x6_t vint64m1x6_t;
    303 typedef __rvv_uint64m1x6_t vuint64m1x6_t;
    304 typedef __rvv_int64m1x7_t vint64m1x7_t;
    305 typedef __rvv_uint64m1x7_t vuint64m1x7_t;
    306 typedef __rvv_int64m1x8_t vint64m1x8_t;
    307 typedef __rvv_uint64m1x8_t vuint64m1x8_t;
    308 typedef __rvv_int64m2_t vint64m2_t;
    309 typedef __rvv_uint64m2_t vuint64m2_t;
    310 typedef __rvv_int64m2x2_t vint64m2x2_t;
    311 typedef __rvv_uint64m2x2_t vuint64m2x2_t;
    312 typedef __rvv_int64m2x3_t vint64m2x3_t;
    313 typedef __rvv_uint64m2x3_t vuint64m2x3_t;
    314 typedef __rvv_int64m2x4_t vint64m2x4_t;
    315 typedef __rvv_uint64m2x4_t vuint64m2x4_t;
    316 typedef __rvv_int64m4_t vint64m4_t;
    317 typedef __rvv_uint64m4_t vuint64m4_t;
    318 typedef __rvv_int64m4x2_t vint64m4x2_t;
    319 typedef __rvv_uint64m4x2_t vuint64m4x2_t;
    320 typedef __rvv_int64m8_t vint64m8_t;
    321 typedef __rvv_uint64m8_t vuint64m8_t;
    322 typedef __rvv_float16mf4_t vfloat16mf4_t;
    323 typedef __rvv_float16mf4x2_t vfloat16mf4x2_t;
    324 typedef __rvv_float16mf4x3_t vfloat16mf4x3_t;
    325 typedef __rvv_float16mf4x4_t vfloat16mf4x4_t;
    326 typedef __rvv_float16mf4x5_t vfloat16mf4x5_t;
    327 typedef __rvv_float16mf4x6_t vfloat16mf4x6_t;
    328 typedef __rvv_float16mf4x7_t vfloat16mf4x7_t;
    329 typedef __rvv_float16mf4x8_t vfloat16mf4x8_t;
    330 typedef __rvv_float16mf2_t vfloat16mf2_t;
    331 typedef __rvv_float16mf2x2_t vfloat16mf2x2_t;
    332 typedef __rvv_float16mf2x3_t vfloat16mf2x3_t;
    333 typedef __rvv_float16mf2x4_t vfloat16mf2x4_t;
    334 typedef __rvv_float16mf2x5_t vfloat16mf2x5_t;
    335 typedef __rvv_float16mf2x6_t vfloat16mf2x6_t;
    336 typedef __rvv_float16mf2x7_t vfloat16mf2x7_t;
    337 typedef __rvv_float16mf2x8_t vfloat16mf2x8_t;
    338 typedef __rvv_float16m1_t vfloat16m1_t;
    339 typedef __rvv_float16m1x2_t vfloat16m1x2_t;
    340 typedef __rvv_float16m1x3_t vfloat16m1x3_t;
    341 typedef __rvv_float16m1x4_t vfloat16m1x4_t;
    342 typedef __rvv_float16m1x5_t vfloat16m1x5_t;
    343 typedef __rvv_float16m1x6_t vfloat16m1x6_t;
    344 typedef __rvv_float16m1x7_t vfloat16m1x7_t;
    345 typedef __rvv_float16m1x8_t vfloat16m1x8_t;
    346 typedef __rvv_float16m2_t vfloat16m2_t;
    347 typedef __rvv_float16m2x2_t vfloat16m2x2_t;
    348 typedef __rvv_float16m2x3_t vfloat16m2x3_t;
    349 typedef __rvv_float16m2x4_t vfloat16m2x4_t;
    350 typedef __rvv_float16m4_t vfloat16m4_t;
    351 typedef __rvv_float16m4x2_t vfloat16m4x2_t;
    352 typedef __rvv_float16m8_t vfloat16m8_t;
    353 typedef __rvv_float32mf2_t vfloat32mf2_t;
    354 typedef __rvv_float32mf2x2_t vfloat32mf2x2_t;
    355 typedef __rvv_float32mf2x3_t vfloat32mf2x3_t;
    356 typedef __rvv_float32mf2x4_t vfloat32mf2x4_t;
    357 typedef __rvv_float32mf2x5_t vfloat32mf2x5_t;
    358 typedef __rvv_float32mf2x6_t vfloat32mf2x6_t;
    359 typedef __rvv_float32mf2x7_t vfloat32mf2x7_t;
    360 typedef __rvv_float32mf2x8_t vfloat32mf2x8_t;
    361 typedef __rvv_float32m1_t vfloat32m1_t;
    362 typedef __rvv_float32m1x2_t vfloat32m1x2_t;
    363 typedef __rvv_float32m1x3_t vfloat32m1x3_t;
    364 typedef __rvv_float32m1x4_t vfloat32m1x4_t;
    365 typedef __rvv_float32m1x5_t vfloat32m1x5_t;
    366 typedef __rvv_float32m1x6_t vfloat32m1x6_t;
    367 typedef __rvv_float32m1x7_t vfloat32m1x7_t;
    368 typedef __rvv_float32m1x8_t vfloat32m1x8_t;
    369 typedef __rvv_float32m2_t vfloat32m2_t;
    370 typedef __rvv_float32m2x2_t vfloat32m2x2_t;
    371 typedef __rvv_float32m2x3_t vfloat32m2x3_t;
    372 typedef __rvv_float32m2x4_t vfloat32m2x4_t;
    373 typedef __rvv_float32m4_t vfloat32m4_t;
    374 typedef __rvv_float32m4x2_t vfloat32m4x2_t;
    375 typedef __rvv_float32m8_t vfloat32m8_t;
    376 typedef __rvv_float64m1_t vfloat64m1_t;
    377 typedef __rvv_float64m1x2_t vfloat64m1x2_t;
    378 typedef __rvv_float64m1x3_t vfloat64m1x3_t;
    379 typedef __rvv_float64m1x4_t vfloat64m1x4_t;
    380 typedef __rvv_float64m1x5_t vfloat64m1x5_t;
    381 typedef __rvv_float64m1x6_t vfloat64m1x6_t;
    382 typedef __rvv_float64m1x7_t vfloat64m1x7_t;
    383 typedef __rvv_float64m1x8_t vfloat64m1x8_t;
    384 typedef __rvv_float64m2_t vfloat64m2_t;
    385 typedef __rvv_float64m2x2_t vfloat64m2x2_t;
    386 typedef __rvv_float64m2x3_t vfloat64m2x3_t;
    387 typedef __rvv_float64m2x4_t vfloat64m2x4_t;
    388 typedef __rvv_float64m4_t vfloat64m4_t;
    389 typedef __rvv_float64m4x2_t vfloat64m4x2_t;
    390 typedef __rvv_float64m8_t vfloat64m8_t;
    391 typedef __rvv_bfloat16mf4_t vbfloat16mf4_t;
    392 typedef __rvv_bfloat16mf4x2_t vbfloat16mf4x2_t;
    393 typedef __rvv_bfloat16mf4x3_t vbfloat16mf4x3_t;
    394 typedef __rvv_bfloat16mf4x4_t vbfloat16mf4x4_t;
    395 typedef __rvv_bfloat16mf4x5_t vbfloat16mf4x5_t;
    396 typedef __rvv_bfloat16mf4x6_t vbfloat16mf4x6_t;
    397 typedef __rvv_bfloat16mf4x7_t vbfloat16mf4x7_t;
    398 typedef __rvv_bfloat16mf4x8_t vbfloat16mf4x8_t;
    399 typedef __rvv_bfloat16mf2_t vbfloat16mf2_t;
    400 typedef __rvv_bfloat16mf2x2_t vbfloat16mf2x2_t;
    401 typedef __rvv_bfloat16mf2x3_t vbfloat16mf2x3_t;
    402 typedef __rvv_bfloat16mf2x4_t vbfloat16mf2x4_t;
    403 typedef __rvv_bfloat16mf2x5_t vbfloat16mf2x5_t;
    404 typedef __rvv_bfloat16mf2x6_t vbfloat16mf2x6_t;
    405 typedef __rvv_bfloat16mf2x7_t vbfloat16mf2x7_t;
    406 typedef __rvv_bfloat16mf2x8_t vbfloat16mf2x8_t;
    407 typedef __rvv_bfloat16m1_t vbfloat16m1_t;
    408 typedef __rvv_bfloat16m1x2_t vbfloat16m1x2_t;
    409 typedef __rvv_bfloat16m1x3_t vbfloat16m1x3_t;
    410 typedef __rvv_bfloat16m1x4_t vbfloat16m1x4_t;
    411 typedef __rvv_bfloat16m1x5_t vbfloat16m1x5_t;
    412 typedef __rvv_bfloat16m1x6_t vbfloat16m1x6_t;
    413 typedef __rvv_bfloat16m1x7_t vbfloat16m1x7_t;
    414 typedef __rvv_bfloat16m1x8_t vbfloat16m1x8_t;
    415 typedef __rvv_bfloat16m2_t vbfloat16m2_t;
    416 typedef __rvv_bfloat16m2x2_t vbfloat16m2x2_t;
    417 typedef __rvv_bfloat16m2x3_t vbfloat16m2x3_t;
    418 typedef __rvv_bfloat16m2x4_t vbfloat16m2x4_t;
    419 typedef __rvv_bfloat16m4_t vbfloat16m4_t;
    420 typedef __rvv_bfloat16m4x2_t vbfloat16m4x2_t;
    421 typedef __rvv_bfloat16m8_t vbfloat16m8_t;
    422 
    423 #ifdef __cplusplus
    424 }
    425 #endif // __cplusplus
    426 #endif // __RISCV_VECTOR_H