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